cvs commit: ponie/src/pmc perl5cargo_cult.pmc
[email protected] (Nicholas Clark) 13 Oct 2004 22:14:24 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/10/13 15:14:21
Modified: perl sv.h
src/pmc perl5cargo_cult.pmc
Log:
Use PMC calls to set/get the IV flags, and SvINOK()
Revision Changes Path
1.26 +8 -9 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -w -r1.25 -r1.26
--- sv.h 13 Oct 2004 20:56:28 -0000 1.25
+++ sv.h 13 Oct 2004 22:14:20 -0000 1.26
@@ -570,10 +570,9 @@
=cut
*/
-#define SvNIOK(sv) (SvFLAGS(sv) & (SVf_IOK|SVf_NOK))
-#define SvNIOKp(sv) (SvFLAGS(sv) & (SVp_IOK|SVp_NOK))
-#define SvNIOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVf_NOK| \
- SVp_IOK|SVp_NOK|SVf_IVisUV))
+#define SvNIOK(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVf_NIOK))
+#define SvNIOKp(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVp_NIOK))
+#define SvNIOK_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVpf_NIOK, 0)
#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
#define assert_not_ROK(sv) ({assert(!SvROK(sv) || !SvRV(sv));}),
@@ -592,19 +591,19 @@
SvOOK_off(sv))
#define SvOKp(sv) (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK))
-#define SvIOKp(sv) (SvFLAGS(sv) & SVp_IOK)
+#define SvIOKp(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVp_IOK))
#define SvIOKp_on(sv) (SvRELEASE_IVX(sv), \
- SvFLAGS(sv) |= SVp_IOK)
+ Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVp_IOK, 1))
#define SvNOKp(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVp_NOK))
#define SvNOKp_on(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVp_NOK, 1)
#define SvPOKp(sv) (SvFLAGS(sv) & SVp_POK)
#define SvPOKp_on(sv) (assert_not_ROK(sv) \
SvFLAGS(sv) |= SVp_POK)
-#define SvIOK(sv) (SvFLAGS(sv) & SVf_IOK)
+#define SvIOK(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVf_IOK))
#define SvIOK_on(sv) (SvRELEASE_IVX(sv), \
- SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
-#define SvIOK_off(sv) (SvFLAGS(sv) &= ~(SVf_IOK|SVp_IOK|SVf_IVisUV))
+ Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVpf_IOK, 1))
+#define SvIOK_off(sv) Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SVpf_IOK, 0)
#define SvIOK_only(sv) ((void)SvOK_off(sv), \
SvFLAGS(sv) |= (SVf_IOK|SVp_IOK))
#define SvIOK_only_UV(sv) ((void)SvOK_off_exc_UV(sv), \
1.15 +10 -4 ponie/src/pmc/perl5cargo_cult.pmc
Index: perl5cargo_cult.pmc
===================================================================
RCS file: /cvs/public/ponie/src/pmc/perl5cargo_cult.pmc,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -w -r1.14 -r1.15
--- perl5cargo_cult.pmc 13 Oct 2004 20:56:29 -0000 1.14
+++ perl5cargo_cult.pmc 13 Oct 2004 22:14:20 -0000 1.15
@@ -1,7 +1,7 @@
/* Perl5QQQ.pmc -*- c -*-
* Copyright: 2001-2004 The Perl Foundation. All Rights Reserved.
* CVS Info
- * $Id: perl5cargo_cult.pmc,v 1.14 2004/10/13 20:56:29 nicholas Exp $
+ * $Id: perl5cargo_cult.pmc,v 1.15 2004/10/13 22:14:20 nicholas Exp $
* Overview:
* These are the vtable functions for the Perl5QQQ base class
* Data Structure and Algorithms:
@@ -100,22 +100,28 @@
switch (key) {
case Ponie_I_SVp_IOK:
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags) &= ~SVp_IOK;
- if (value)
+ if (value) {
+ /* FIXME SvRELEASE_IVX(sv); */
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
|= SVp_IOK;
+ }
return;
case Ponie_I_SVf_IOK:
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags) &= ~SVf_IOK;
- if (value)
+ if (value) {
+ /* FIXME SvRELEASE_IVX(sv); */
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
|= SVf_IOK;
+ }
return;
case Ponie_I_SVpf_IOK:
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
&= ~(SVp_IOK|SVf_IOK);
- if (value)
+ if (value) {
+ /* FIXME SvRELEASE_IVX(sv); */
(((struct STRUCT_SV *)PMC_struct_val(SELF))->sv_flags)
|= (SVp_IOK|SVf_IOK);
+ }
return;
case Ponie_I_SVpf_NIOK: