Front page | perl.ponie.changes |
Postings from July 2005
[svn:ponie] rev 323 - in trunk: perl src/pmc
From:
nicholas
Date:
July 9, 2005 16:00
Subject:
[svn:ponie] rev 323 - in trunk: perl src/pmc
Message ID:
20050709230004.12119.qmail@x1.develooper.com
Author: nicholas
Date: Sat Jul 9 16:00:03 2005
New Revision: 323
Modified:
trunk/perl/sv.c
trunk/src/pmc/perl5cargo_cult.pmc
trunk/src/pmc/perl5cargo_cult_statics.c
Log:
Stage 2 of converting the IV/UV setting code to using the PMC set interface -
actually send it via the PMC.x
Modified: trunk/perl/sv.c
==============================================================================
--- trunk/perl/sv.c (original)
+++ trunk/perl/sv.c Sat Jul 9 16:00:03 2005
@@ -1157,32 +1157,8 @@ Does not handle 'set' magic. See also C
void
Perl_sv_setiv(pTHX_ register SV *sv, IV i)
{
- //Perl_sv_setiv_backend(aTHX_ sv, i, 0);
- SV_CHECK_THINKFIRST_COW_DROP(sv);
- switch (SvTYPE(sv)) {
- case SVt_NULL:
- sv_upgrade(sv, SVt_IV);
- break;
- case SVt_NV:
- sv_upgrade(sv, SVt_PVNV);
- break;
- case SVt_RV:
- case SVt_PV:
- sv_upgrade(sv, SVt_PVIV);
- break;
-
- case SVt_PVGV:
- case SVt_PVAV:
- case SVt_PVHV:
- case SVt_PVCV:
- case SVt_PVFM:
- case SVt_PVIO:
- Perl_croak(aTHX_ "Can't coerce %s to integer in %s", sv_reftype(sv,0),
- OP_DESC(PL_op));
- }
- (void)SvIOK_only(sv); /* validate number */
- SvIV_set(sv, i);
- SvTAINT(sv);
+ Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv),
+ Ponie_I_SV_IV_NO_GMAGIC, i);
}
/*
@@ -1196,7 +1172,7 @@ Like C<sv_setiv>, but also handles 'set'
void
Perl_sv_setiv_mg(pTHX_ register SV *sv, IV i)
{
- Perl_sv_setiv_backend(aTHX_ sv, i, SV_SMAGIC);
+ Parrot_PMC_set_intval(PL_Parrot, MUMBLE(sv), i);
}
/*
@@ -1211,7 +1187,8 @@ Does not handle 'set' magic. See also C
void
Perl_sv_setuv(pTHX_ register SV *sv, UV u)
{
- Perl_sv_setiv_backend(aTHX_ sv, u, SV_SUV);
+ Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv),
+ Ponie_I_SV_UV_NO_GMAGIC, u);
}
/*
@@ -1225,7 +1202,7 @@ Like C<sv_setuv>, but also handles 'set'
void
Perl_sv_setuv_mg(pTHX_ register SV *sv, UV u)
{
- Perl_sv_setiv_backend(aTHX_ sv, u, SV_SUV|SV_SMAGIC);
+ Parrot_PMC_set_intval_intkey(PL_Parrot,MUMBLE(sv), Ponie_I_SV_UV, u);
}
void
Modified: trunk/src/pmc/perl5cargo_cult.pmc
==============================================================================
--- trunk/src/pmc/perl5cargo_cult.pmc (original)
+++ trunk/src/pmc/perl5cargo_cult.pmc Sat Jul 9 16:00:03 2005
@@ -123,6 +123,10 @@ pmclass Perl5cargo_cult dynpmc {
}
}
+ void set_integer_native(INTVAL value) {
+ return Perl_sv_setiv_backend(aTHX_ MUMBLE(SELF), value, SV_SMAGIC);
+ }
+
INTVAL get_integer() {
return Perl_sv_2iv_backend(aTHX_ MUMBLE(SELF), SV_GMAGIC);
}
Modified: trunk/src/pmc/perl5cargo_cult_statics.c
==============================================================================
--- trunk/src/pmc/perl5cargo_cult_statics.c (original)
+++ trunk/src/pmc/perl5cargo_cult_statics.c Sat Jul 9 16:00:03 2005
@@ -431,6 +431,17 @@ set_integer_keyed_int(Interp* interprete
PERL5_FLAGS(pmc) &= ~SVphv_REHASH;
}
return;
+
+ case Ponie_I_SV_IV_NO_GMAGIC:
+ Perl_sv_setiv_backend(aTHX_ MUMBLE(pmc), value, 0);
+ return;
+ case Ponie_I_SV_UV:
+ Perl_sv_setiv_backend(aTHX_ MUMBLE(pmc), value, SV_SMAGIC|SV_SUV);
+ return;
+ case Ponie_I_SV_UV_NO_GMAGIC:
+ Perl_sv_setiv_backend(aTHX_ MUMBLE(pmc), value, SV_SUV);
+ return;
+
default:
/* Hush gcc. There is a default. */;
}
-
[svn:ponie] rev 323 - in trunk: perl src/pmc
by nicholas