cvs commit: ponie/perl/ext/Devel/Peek/t Peek.t
[email protected] (Nicholas Clark) 3 May 2004 22:21:57 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/05/03 15:21:57
Modified: . Configure.pl
perl sv.c
perl/ext/Devel/Peek/t Peek.t
Log:
Today RVs, tomorrow the world.
(Or at least all the other SV variants)
Revision Changes Path
1.22 +1 -1 ponie/Configure.pl
Index: Configure.pl
===================================================================
RCS file: /cvs/public/ponie/Configure.pl,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -w -r1.21 -r1.22
--- Configure.pl 3 May 2004 20:07:18 -0000 1.21
+++ Configure.pl 3 May 2004 22:21:56 -0000 1.22
@@ -47,7 +47,7 @@
my $template = do {local $/; <F>};
close F or die $!;
chdir('parrot') || die "You need to checkout parrot inside ponie";
- foreach (qw(pvlv pvav pvhv)) {
+ foreach (qw(rv pvlv pvav pvhv)) {
my $file = File::Spec->catfile('classes', "perl5$_.pmc");
if (-e $file) {
unlink $file or die "unlink '$file' failed: $!";
1.22 +12 -12 ponie/perl/sv.c
Index: sv.c
===================================================================
RCS file: /cvs/public/ponie/perl/sv.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -w -r1.21 -r1.22
--- sv.c 3 May 2004 20:07:18 -0000 1.21
+++ sv.c 3 May 2004 22:21:56 -0000 1.22
@@ -721,14 +721,15 @@
STATIC XRV*
S_new_xrv(pTHX)
{
- XRV* xrv;
- LOCK_SV_MUTEX;
- if (!PL_xrv_root)
- more_xrv();
- xrv = PL_xrv_root;
- PL_xrv_root = (XRV*)xrv->xrv_rv;
- UNLOCK_SV_MUTEX;
- return xrv;
+ Parrot_Int type = Parrot_PMC_typenum(PL_Parrot, "Perl5RV");
+ Parrot_PMC rv;
+ /*
+ Instead of giving back a real XRV we give back a PMC
+ */
+
+ rv = Parrot_PMC_new(PL_Parrot, type);
+ Parrot_register_pmc(PL_Parrot, rv);
+ return MUMBLE(rv);
}
/* return a struct xrv to the free list */
@@ -736,10 +737,7 @@
STATIC void
S_del_xrv(pTHX_ XRV *p)
{
- LOCK_SV_MUTEX;
- p->xrv_rv = (SV*)PL_xrv_root;
- PL_xrv_root = p;
- UNLOCK_SV_MUTEX;
+ Parrot_unregister_pmc(PL_Parrot, p);
}
/* allocate another arena's worth of struct xrv */
@@ -1643,6 +1641,7 @@
iv = PTR2IV(pv);
nv = PTR2NV(pv);
del_XRV(SvANY(sv));
+ SvPMC_off(sv);
magic = 0;
stash = 0;
break;
@@ -1707,6 +1706,7 @@
break;
case SVt_RV:
SvANY(sv) = new_XRV();
+ SvPMC_on(sv);
SvRV(sv) = (SV*)pv;
break;
case SVt_PV:
1.3 +10 -10 ponie/perl/ext/Devel/Peek/t/Peek.t
Index: Peek.t
===================================================================
RCS file: /cvs/public/ponie/perl/ext/Devel/Peek/t/Peek.t,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- Peek.t 9 Apr 2004 17:30:14 -0000 1.2
+++ Peek.t 3 May 2004 22:21:56 -0000 1.3
@@ -131,7 +131,7 @@
\$a,
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -160,7 +160,7 @@
[$b,$c],
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVAV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -183,7 +183,7 @@
{$b=>$c},
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVHV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -203,7 +203,7 @@
sub(){@_},
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVCV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -231,7 +231,7 @@
\&do_test,
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVCV\\($ADDR\\) at $ADDR
REFCNT = (3|4)
@@ -261,7 +261,7 @@
qr(tic),
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVMG\\($ADDR\\) at $ADDR
REFCNT = 1
@@ -279,7 +279,7 @@
(bless {}, "Tac"),
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVHV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -348,7 +348,7 @@
{chr(256)=>chr(512)},
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVHV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -374,7 +374,7 @@
{chr(256)=>chr(512)},
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVHV\\($ADDR\\) at $ADDR
REFCNT = 2
@@ -457,7 +457,7 @@
bless(\\undef, 'Foobar'),
'SV = RV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(ROK\\)
+ FLAGS = \\(pmc,ROK\\)
RV = $ADDR
SV = PVMG\\($ADDR\\) at $ADDR
REFCNT = 2