cvs commit: ponie/src/pmc perl5cargo_cult.pmc perl5cargo_cult_statics.c perl5iv.pmc perl5nv.pmc perl5pv.pmc perl5pvav.pmc perl5pvbm.pmc perl5pvcv.pmc perl5pvfm.pmc perl5pvgv.pmc perl5pvhv.pmc perl5pvio.pmc perl5pviv.pmc perl5pvlv.pmc perl5pvmg.pmc perl5pvnv.pmc perl5rv.pmc

[email protected] (Nicholas Clark) 1 May 2005 21:00:49 -0000
Newsgroups perl.ponie.changes
Message-ID <[email protected]>
cvsuser     05/05/01 14:00:49

  Modified:    perl     sv.h
               src/pmc  perl5cargo_cult.pmc perl5cargo_cult_statics.c
                        perl5iv.pmc perl5nv.pmc perl5pv.pmc perl5pvav.pmc
                        perl5pvbm.pmc perl5pvcv.pmc perl5pvfm.pmc
                        perl5pvgv.pmc perl5pvhv.pmc perl5pvio.pmc
                        perl5pviv.pmc perl5pvlv.pmc perl5pvmg.pmc
                        perl5pvnv.pmc perl5rv.pmc
  Log:
  Replace pointer return for SvANY with get/set by value.
  Add new enumerations for SvREFCNT manipulation, but don't use them yet.
  
  Revision  Changes    Path
  1.80      +6 -7      ponie/perl/sv.h
  
  Index: sv.h
  ===================================================================
  RCS file: /cvs/public/ponie/perl/sv.h,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -r1.79 -r1.80
  --- sv.h	1 May 2005 17:35:10 -0000	1.79
  +++ sv.h	1 May 2005 21:00:48 -0000	1.80
  @@ -131,12 +131,8 @@
   =cut
   */
   
  -#ifdef PERL_CORE
  -#define SvANY(sv)	(*((void **)Parrot_PMC_get_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY)) + 0)
  -#define SvANY_set(sv, p)	(*((void **)Parrot_PMC_get_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY)) = p)
  -#else
  -#define SvANY(sv)	(*((void **)Parrot_PMC_get_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY)))
  -#endif
  +#define SvANY(sv)	Parrot_PMC_get_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY)
  +#define SvANY_set(sv, p)	Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY, p)
   
   #define SvREFCNT(sv)	(*((U32 *)Parrot_PMC_get_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_REFCNT)))
   #if defined(PERL_CORE) && defined(PERL_IN_SV_C)
  @@ -202,7 +198,8 @@
   /* All the things get_pointer_keyed_int can return.  */
   
   typedef enum {
  -  Ponie_P_ANY,			/* &SvANY pointer	   */
  +  Ponie_P_ANY,			/* SvANY (the value)	   */
  +  Ponie_P_ANY_P,		/* &SvANY pointer	   */
     Ponie_P_FLAGS,		/* &SvFLAGS pointer	   */
     Ponie_P_REFCNT,		/* &SvREFCNT pointer	   */
     Ponie_P_RV,			/* &SvRV pointer	   */
  @@ -273,6 +270,8 @@
     Ponie_I_SV_ZERO_FLAGS_SET_TYPE,
     Ponie_I_SV_ZERO_FLAGS_SET_TYPEMASK_BREAK_DEAD,
     Ponie_I_SV_FLAGS,		/* Read only  */
  +  Ponie_I_SV_REFCNT,		/* SvREFCNT value	   */
  +  Ponie_I_SV_REFCNT_INC,	/* SvREFCNT() += value	   */
     Ponie_I_SVf_BREAK,
     Ponie_I_SVp_OK,
     Ponie_I_SVf_OK,
  
  
  
  1.58      +8 -1      ponie/src/pmc/perl5cargo_cult.pmc
  
  Index: perl5cargo_cult.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5cargo_cult.pmc,v
  retrieving revision 1.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- perl5cargo_cult.pmc	1 May 2005 16:25:32 -0000	1.57
  +++ perl5cargo_cult.pmc	1 May 2005 21:00:49 -0000	1.58
  @@ -15,6 +15,7 @@
   #include "ponie.h"
   
   #define PERL5_FLAGS(pmc) (((struct STRUCT_SV *)PMC_struct_val(pmc))->sv_flags)
  +#define PERL5_REFCNT(pmc) (((struct STRUCT_SV *)PMC_struct_val(pmc))->sv_refcnt)
   
   #include "perl5cargo_cult_statics.c"
   
  @@ -70,6 +71,8 @@
       void* get_pointer_keyed_int(INTVAL key) {
   	switch (key) {
   	case Ponie_P_ANY:
  +	    return *(void **)PMC_struct_val(SELF);
  +	case Ponie_P_ANY_P:
   	    return PMC_struct_val(SELF);
   	case Ponie_P_FLAGS:
               return &(((struct STRUCT_SV*)PMC_struct_val(SELF))->sv_flags);
  @@ -518,6 +521,10 @@
   
       void set_pointer_keyed_int(INTVAL key, void *value) {
   	switch (key) {
  +	case Ponie_P_ANY:
  +            assert(PMC_struct_val(SELF));
  +	    *(void **)PMC_struct_val(SELF) = value;
  +            break;
   	case Ponie_P_RVX_0:
               assert (value == 0);
               PMC_pmc_val(SELF) = NULL;
  
  
  
  1.2       +10 -1     ponie/src/pmc/perl5cargo_cult_statics.c
  
  Index: perl5cargo_cult_statics.c
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5cargo_cult_statics.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- perl5cargo_cult_statics.c	30 Apr 2005 21:59:21 -0000	1.1
  +++ perl5cargo_cult_statics.c	1 May 2005 21:00:49 -0000	1.2
  @@ -34,6 +34,8 @@
       switch (key) {
       case Ponie_I_SV_FLAGS:
           return PERL5_FLAGS(pmc);
  +    case Ponie_I_SV_REFCNT:
  +        return PERL5_REFCNT(pmc);
       case Ponie_I_SV_TYPE:
           return PERL5_FLAGS(pmc) & SVTYPEMASK;
       case Ponie_I_SVp_OK:
  @@ -160,6 +162,13 @@
           /*SvANY(sv) = (void *) 0xDEAD;*/
           ((struct STRUCT_SV *)PMC_struct_val(pmc))->sv_any = 0xDEAD;
           return;
  +    case Ponie_I_SV_REFCNT:
  +        PERL5_REFCNT(pmc) = value;
  +        return;
  +    case Ponie_I_SV_REFCNT_INC:
  +        PERL5_REFCNT(pmc) += value;
  +        return;
  +
       case Ponie_I_SV_UPGRADE:
           if ((PERL5_FLAGS(pmc) & SVTYPEMASK) >= value)
               return;
  
  
  
  1.4       +2 -2      ponie/src/pmc/perl5iv.pmc
  
  Index: perl5iv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5iv.pmc,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- perl5iv.pmc	30 Apr 2005 13:10:29 -0000	1.3
  +++ perl5iv.pmc	1 May 2005 21:00:49 -0000	1.4
  @@ -39,7 +39,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = 0;
  +                SvANY_set(sv, 0);
                   SvIV_set(sv, val->iv);
                   break;
               }
  
  
  
  1.4       +2 -2      ponie/src/pmc/perl5nv.pmc
  
  Index: perl5nv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5nv.pmc,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- perl5nv.pmc	30 Apr 2005 13:10:29 -0000	1.3
  +++ perl5nv.pmc	1 May 2005 21:00:49 -0000	1.4
  @@ -37,7 +37,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
   
  -                SvANY(sv) = 0;
  +                SvANY_set(sv, 0);
                   SvNV_set(sv, val->nv);
                   break;
               }
  
  
  
  1.6       +2 -2      ponie/src/pmc/perl5pv.pmc
  
  Index: perl5pv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pv.pmc,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- perl5pv.pmc	30 Apr 2005 22:00:13 -0000	1.5
  +++ perl5pv.pmc	1 May 2005 21:00:49 -0000	1.6
  @@ -98,7 +98,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPV();
  +                SvANY_set(sv, new_XPV());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.6       +2 -2      ponie/src/pmc/perl5pvav.pmc
  
  Index: perl5pvav.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvav.pmc,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- perl5pvav.pmc	30 Apr 2005 22:00:13 -0000	1.5
  +++ perl5pvav.pmc	1 May 2005 21:00:49 -0000	1.6
  @@ -69,7 +69,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -		SvANY(sv) = new_XPVAV();
  +		SvANY_set(sv, new_XPVAV());
   		assert(!val->pv);
   		assert(!val->rv);
   
  
  
  
  1.6       +2 -2      ponie/src/pmc/perl5pvbm.pmc
  
  Index: perl5pvbm.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvbm.pmc,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- perl5pvbm.pmc	30 Apr 2005 22:00:13 -0000	1.5
  +++ perl5pvbm.pmc	1 May 2005 21:00:49 -0000	1.6
  @@ -71,7 +71,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVBM();
  +                SvANY_set(sv, new_XPVBM());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvcv.pmc
  
  Index: perl5pvcv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvcv.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvcv.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvcv.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -70,7 +70,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
   
  -		SvANY(sv) = new_XPVCV();
  +		SvANY_set(sv, new_XPVCV());
                   Zero(SvANY(sv), 1, XPVCV);
   		assert (!val->sv_is_rv);
   		SvPV_set(sv, val->pv);
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvfm.pmc
  
  Index: perl5pvfm.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvfm.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvfm.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvfm.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -36,7 +36,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVFM();
  +                SvANY_set(sv, new_XPVFM());
                   Zero(SvANY(sv), 1, XPVFM);
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvgv.pmc
  
  Index: perl5pvgv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvgv.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvgv.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvgv.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -37,7 +37,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVGV();
  +                SvANY_set(sv, new_XPVGV());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvhv.pmc
  
  Index: perl5pvhv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvhv.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvhv.pmc	1 May 2005 17:35:10 -0000	1.6
  +++ perl5pvhv.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -70,7 +70,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
   
  -		SvANY(sv) = new_XPVHV();
  +		SvANY_set(sv, new_XPVHV());
   		assert(!val->pv);
   		assert(!val->rv);
   
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvio.pmc
  
  Index: perl5pvio.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvio.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvio.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvio.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -36,7 +36,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVIO();
  +                SvANY_set(sv, new_XPVIO());
                   Zero(SvANY(sv), 1, XPVIO);
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pviv.pmc
  
  Index: perl5pviv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pviv.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pviv.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pviv.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -92,7 +92,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVIV();
  +                SvANY_set(sv, new_XPVIV());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.6       +2 -2      ponie/src/pmc/perl5pvlv.pmc
  
  Index: perl5pvlv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvlv.pmc,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- perl5pvlv.pmc	30 Apr 2005 22:00:13 -0000	1.5
  +++ perl5pvlv.pmc	1 May 2005 21:00:49 -0000	1.6
  @@ -72,7 +72,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVLV();
  +                SvANY_set(sv, new_XPVLV());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvmg.pmc
  
  Index: perl5pvmg.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvmg.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvmg.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvmg.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -96,7 +96,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVMG();
  +                SvANY_set(sv, new_XPVMG());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.7       +2 -2      ponie/src/pmc/perl5pvnv.pmc
  
  Index: perl5pvnv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5pvnv.pmc,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- perl5pvnv.pmc	30 Apr 2005 22:00:13 -0000	1.6
  +++ perl5pvnv.pmc	1 May 2005 21:00:49 -0000	1.7
  @@ -93,7 +93,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
                   
  -                SvANY(sv) = new_XPVNV();
  +                SvANY_set(sv, new_XPVNV());
                   if (val->sv_is_rv) {
                       SvRV_set(sv, val->rv);
                       Parrot_PMC_set_pointer_intkey(PL_Parrot,MUMBLE(sv),
  
  
  
  1.5       +2 -2      ponie/src/pmc/perl5rv.pmc
  
  Index: perl5rv.pmc
  ===================================================================
  RCS file: /cvs/public/ponie/src/pmc/perl5rv.pmc,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- perl5rv.pmc	30 Apr 2005 17:35:36 -0000	1.4
  +++ perl5rv.pmc	1 May 2005 21:00:49 -0000	1.5
  @@ -34,7 +34,7 @@
                       = &((struct Ponie_upgrade_info *)value)->value;
                   SV *sv = MUMBLE(SELF);
   
  -                SvANY(sv) = 0;
  +                SvANY_set(sv, 0);
                   SvRV_set(sv, val->rv);
                   break;
               }