cvs commit: ponie/src/pmc perl5cargo_cult.pmc
[email protected] (Nicholas Clark) 15 Oct 2004 13:41:39 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/10/15 06:41:39
Modified: perl sv.h
src/pmc perl5cargo_cult.pmc
Log:
AMAGIC and GAMAGIC into the PMC.
Plus re-align some whitespace
Revision Changes Path
1.37 +12 -12 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -w -r1.36 -r1.37
--- sv.h 15 Oct 2004 12:17:17 -0000 1.36
+++ sv.h 15 Oct 2004 13:41:38 -0000 1.37
@@ -708,11 +708,11 @@
#define SvRMAGICAL_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_RMAGICAL, 1)
#define SvRMAGICAL_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_RMAGICAL, 0)
-#define SvAMAGIC(sv) (SvFLAGS(sv) & SVf_AMAGIC)
-#define SvAMAGIC_on(sv) (SvFLAGS(sv) |= SVf_AMAGIC)
-#define SvAMAGIC_off(sv) (SvFLAGS(sv) &= ~SVf_AMAGIC)
+#define SvAMAGIC(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_AMAGIC))
+#define SvAMAGIC_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_AMAGIC, 1)
+#define SvAMAGIC_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_AMAGIC, 0)
-#define SvGAMAGIC(sv) (SvFLAGS(sv) & (SVs_GMG|SVf_AMAGIC))
+#define SvGAMAGIC(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_GAMAGIC))
/*
#define Gv_AMG(stash) \
1.27 +16 -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.26
retrieving revision 1.27
diff -u -w -r1.26 -r1.27
--- perl5cargo_cult.pmc 15 Oct 2004 12:17:17 -0000 1.26
+++ perl5cargo_cult.pmc 15 Oct 2004 13:41:38 -0000 1.27
@@ -1,7 +1,7 @@
/* Perl5QQQ.pmc -*- c -*-
* Copyright: 2001-2004 The Perl Foundation. All Rights Reserved.
* CVS Info
- * $Id: perl5cargo_cult.pmc,v 1.26 2004/10/15 12:17:17 nicholas Exp $
+ * $Id: perl5cargo_cult.pmc,v 1.27 2004/10/15 13:41:38 nicholas Exp $
* Overview:
* These are the vtable functions for the Perl5QQQ base class
* Data Structure and Algorithms:
@@ -162,6 +162,12 @@
case Ponie_I_SV_RMAGICAL:
return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
& SVs_RMG;
+ case Ponie_I_SV_AMAGIC:
+ return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
+ & SVf_AMAGIC;
+ case Ponie_I_SV_GAMAGIC:
+ return ((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags
+ & (SVs_GMG|SVf_AMAGIC);
default:
croak ("Out of range or illegal key %d (max is %d) "
@@ -430,6 +436,15 @@
&= ~SVs_RMG;
}
return;
+ case Ponie_I_SV_AMAGIC:
+ if (value) {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ |= SVf_AMAGIC;
+ } else {
+ (((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
+ &= ~SVf_AMAGIC;
+ }
+ return;
default:
/* Hush gcc. There is a default. */;