cvs commit: ponie/src/pmc perl5cargo_cult.pmc
[email protected] (Nicholas Clark) 15 Oct 2004 14:28:41 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/10/15 07:28:41
Modified: perl sv.h
src/pmc perl5cargo_cult.pmc
Log:
PAD{STALE,TMP,MY} into PMC
Revision Changes Path
1.39 +9 -9 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -w -r1.38 -r1.39
--- sv.h 15 Oct 2004 14:05:41 -0000 1.38
+++ sv.h 15 Oct 2004 14:28:41 -0000 1.39
@@ -728,16 +728,16 @@
#define SvTHINKFIRST(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_THINKFIRST))
-#define SvPADSTALE(sv) (SvFLAGS(sv) & SVs_PADSTALE)
-#define SvPADSTALE_on(sv) (SvFLAGS(sv) |= SVs_PADSTALE)
-#define SvPADSTALE_off(sv) (SvFLAGS(sv) &= ~SVs_PADSTALE)
-
-#define SvPADTMP(sv) (SvFLAGS(sv) & SVs_PADTMP)
-#define SvPADTMP_on(sv) (SvFLAGS(sv) |= SVs_PADTMP)
-#define SvPADTMP_off(sv) (SvFLAGS(sv) &= ~SVs_PADTMP)
+#define SvPADSTALE(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADSTALE))
+#define SvPADSTALE_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADSTALE, 1)
+#define SvPADSTALE_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADSTALE, 0)
+
+#define SvPADTMP(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADTMP))
+#define SvPADTMP_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADTMP, 1)
+#define SvPADTMP_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADTMP, 0)
-#define SvPADMY(sv) (SvFLAGS(sv) & SVs_PADMY)
-#define SvPADMY_on(sv) (SvFLAGS(sv) |= SVs_PADMY)
+#define SvPADMY(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADMY))
+#define SvPADMY_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_PADMY, 1)
#define SvTEMP(sv) (SvFLAGS(sv) & SVs_TEMP)
#define SvTEMP_on(sv) (SvFLAGS(sv) |= SVs_TEMP)
1.29 +34 -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.28
retrieving revision 1.29
diff -u -w -r1.28 -r1.29
--- perl5cargo_cult.pmc 15 Oct 2004 14:05:42 -0000 1.28
+++ perl5cargo_cult.pmc 15 Oct 2004 14:28:41 -0000 1.29
@@ -1,7 +1,7 @@
/* Perl5QQQ.pmc -*- c -*-
* Copyright: 2001-2004 The Perl Foundation. All Rights Reserved.
* CVS Info
- * $Id: perl5cargo_cult.pmc,v 1.28 2004/10/15 14:05:42 nicholas Exp $
+ * $Id: perl5cargo_cult.pmc,v 1.29 2004/10/15 14:28:41 nicholas Exp $
* Overview:
* These are the vtable functions for the Perl5QQQ base class
* Data Structure and Algorithms:
@@ -174,6 +174,15 @@
case Ponie_I_SV_THINKFIRST:
return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
& SVf_THINKFIRST;
+ case Ponie_I_SV_PADSTALE:
+ return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
+ & SVs_PADSTALE;
+ case Ponie_I_SV_PADTMP:
+ return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
+ & SVs_PADTMP;
+ case Ponie_I_SV_PADMY:
+ return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
+ & SVs_PADMY;
default:
croak ("Out of range or illegal key %d (max is %d) "
@@ -460,6 +469,30 @@
&= ~SVf_AMAGIC;
}
return;
+ case Ponie_I_SV_PADSTALE:
+ if (value) {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ |= SVs_PADSTALE;
+ } else {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ &= ~SVs_PADSTALE;
+ }
+ return;
+ case Ponie_I_SV_PADTMP:
+ if (value) {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ |= SVs_PADTMP;
+ } else {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ &= ~SVs_PADTMP;
+ }
+ return;
+ case Ponie_I_SV_PADMY:
+ if (value) {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ |= SVs_PADMY;
+ return;
+ }
default:
/* Hush gcc. There is a default. */;