cvs commit: ponie/src/pmc perl5cargo_cult.pmc
[email protected] (Nicholas Clark) 4 Nov 2004 06:42:12 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/11/03 22:42:12
Modified: perl sv.c sv.h
src/pmc perl5cargo_cult.pmc
Log:
Move the BM macros into the PMC code
Revision Changes Path
1.52 +3 -15 ponie/perl/sv.c
Index: sv.c
===================================================================
RCS file: /cvs/public/ponie/perl/sv.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- sv.c 3 Nov 2004 23:18:06 -0000 1.51
+++ sv.c 4 Nov 2004 06:42:12 -0000 1.52
@@ -1118,27 +1118,15 @@
}
U8* Perl_macro_BmRARE (pTHX_ SV *sv) {
- if(SvPMC(sv)) {
- XPVBM* data = (XPVBM*) /**/ SvANY(sv);
- return &(data->xbm_rare);
- }
- return &((XPVBM*)SvANY(sv))->xbm_rare;
+ return Parrot_PMC_get_pointer_intkey(PL_Parrot,MUMBLE(sv), Ponie_P_RARE);
}
I32* Perl_macro_BmUSEFUL (pTHX_ SV *sv) {
- if(SvPMC(sv)) {
- XPVBM* data = (XPVBM*) /**/ SvANY(sv);
- return &(data->xbm_useful);
- }
- return &((XPVBM*)SvANY(sv))->xbm_useful;
+ return Parrot_PMC_get_pointer_intkey(PL_Parrot,MUMBLE(sv), Ponie_P_USEFUL);
}
U16* Perl_macro_BmPREVIOUS (pTHX_ SV *sv) {
- if(SvPMC(sv)) {
- XPVBM* data = (XPVBM*) /**/ SvANY(sv);
- return &(data->xbm_previous);
- }
- return &((XPVBM*)SvANY(sv))->xbm_previous;
+ return Parrot_PMC_get_pointer_intkey(PL_Parrot,MUMBLE(sv), Ponie_P_PREVIOUS);
}
IV* Perl_macro_FmLINES (pTHX_ SV *sv) {
1.55 +3 -0 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- sv.h 3 Nov 2004 23:18:06 -0000 1.54
+++ sv.h 4 Nov 2004 06:42:12 -0000 1.55
@@ -203,6 +203,9 @@
Ponie_P_HVPLACEHOLDERS, /* SvNVX pointer */
Ponie_P_MAGIC, /* &SvMAGIC pointer */
Ponie_P_STASH, /* &SvSTASH pointer */
+ Ponie_P_RARE, /* &BmRARE pointer */
+ Ponie_P_USEFUL, /* &BmUSEFUL pointer */
+ Ponie_P_PREVIOUS, /* &BmPREVIOUS pointer */
Ponie_P_RVX_0, /* Clear SvRVX pointer */
Ponie_P_PVX_0, /* Clear SvPVX pointer */
Ponie_P_MAX
1.41 +31 -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.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- perl5cargo_cult.pmc 3 Nov 2004 23:18:06 -0000 1.40
+++ perl5cargo_cult.pmc 4 Nov 2004 06:42:12 -0000 1.41
@@ -1,7 +1,7 @@
/* Perl5QQQ.pmc -*- c -*-
* Copyright: 2001-2004 The Perl Foundation. All Rights Reserved.
* CVS Info
- * $Id: perl5cargo_cult.pmc,v 1.40 2004/11/03 23:18:06 nicholas Exp $
+ * $Id: perl5cargo_cult.pmc,v 1.41 2004/11/04 06:42:12 nicholas Exp $
* Overview:
* These are the vtable functions for the Perl5QQQ base class
* Data Structure and Algorithms:
@@ -114,6 +114,36 @@
assert (any);
return &(any->xmg_stash);
}
+ case Ponie_P_RARE:
+ {
+ struct STRUCT_SV* sv = PMC_struct_val(SELF);
+ XPVBM *any;
+
+ assert (sv);
+ any = (XPVBM *)sv->sv_any;
+ assert (any);
+ return &(any->xbm_rare);
+ }
+ case Ponie_P_USEFUL:
+ {
+ struct STRUCT_SV* sv = PMC_struct_val(SELF);
+ XPVBM *any;
+
+ assert (sv);
+ any = (XPVBM *)sv->sv_any;
+ assert (any);
+ return &(any->xbm_useful);
+ }
+ case Ponie_P_PREVIOUS:
+ {
+ struct STRUCT_SV* sv = PMC_struct_val(SELF);
+ XPVBM *any;
+
+ assert (sv);
+ any = (XPVBM *)sv->sv_any;
+ assert (any);
+ return &(any->xbm_previous);
+ }
case Ponie_P_IVX:
case Ponie_P_UVX:
case Ponie_P_AVOFF: