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