[svn:ponie] rev 327 - in trunk: . perl src/pmc
[email protected] 10 Jul 2005 14:32:54 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
Author: nicholas
Date: Sun Jul 10 07:32:53 2005
New Revision: 327
Modified:
trunk/ (props changed)
trunk/perl/sv.c
trunk/src/pmc/perl5cargo_cult.pmc
Log:
r26010@ship-in-a-bottle: nick | 2005-07-10 14:50:02 +0100
Send all PV sets via a PMC method.
Modified: trunk/perl/sv.c
==============================================================================
--- trunk/perl/sv.c (original)
+++ trunk/perl/sv.c Sun Jul 10 07:32:53 2005
@@ -3838,7 +3838,10 @@ undefined. Does not handle 'set' magic.
void
Perl_sv_setpvn(pTHX_ SV *sv, const char *ptr, STRLEN len)
{
- Perl_sv_setpvn_backend(aTHX_ sv, ptr, len, 0);
+ struct Ponie_cpvlen setlen = {ptr, len};
+ Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv),
+ Ponie_P_SV_PVN_NO_SMAGIC,
+ &setlen);
}
/*
@@ -3852,7 +3855,9 @@ Like C<sv_setpvn>, but also handles 'set
void
Perl_sv_setpvn_mg(pTHX_ register SV *sv, register const char *ptr, register STRLEN len)
{
- Perl_sv_setpvn_backend(aTHX_ sv, ptr, len, SV_SMAGIC);
+ struct Ponie_cpvlen setlen = {ptr, len};
+ Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_SV_PVN,
+ &setlen);
}
@@ -3868,8 +3873,10 @@ handle 'set' magic. See C<sv_setpv_mg>.
void
Perl_sv_setpv(pTHX_ register SV *sv, register const char *ptr)
{
- const STRLEN len = ptr ? strlen(ptr) : 0;
- Perl_sv_setpvn_backend(aTHX_ sv, ptr, len, 0);
+ struct Ponie_cpvlen setlen = {ptr, ptr ? strlen(ptr) : 0};
+ Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv),
+ Ponie_P_SV_PVN_NO_SMAGIC,
+ &setlen);
}
/*
@@ -3883,8 +3890,9 @@ Like C<sv_setpv>, but also handles 'set'
void
Perl_sv_setpv_mg(pTHX_ register SV *sv, register const char *ptr)
{
- const STRLEN len = ptr ? strlen(ptr) : 0;
- Perl_sv_setpvn_backend(aTHX_ sv, ptr, len, SV_SMAGIC);
+ struct Ponie_cpvlen setlen = {ptr, ptr ? strlen(ptr) : 0};
+ Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_SV_PVN,
+ &setlen);
}
/*
Modified: trunk/src/pmc/perl5cargo_cult.pmc
==============================================================================
--- trunk/src/pmc/perl5cargo_cult.pmc (original)
+++ trunk/src/pmc/perl5cargo_cult.pmc Sun Jul 10 07:32:53 2005
@@ -713,12 +713,20 @@ pmclass Perl5cargo_cult dynpmc {
&(output->len), 0);
}
break;
+ case Ponie_P_SV_PVN:
+ {
+ struct Ponie_cpvlen *input = (struct Ponie_cpvlen *) value;
+ Perl_sv_setpvn_backend(aTHX_ MUMBLE(SELF), input->pv,
+ input->len, SV_SMAGIC);
+ }
+ break;
case Ponie_P_SV_PVN_NO_SMAGIC:
{
struct Ponie_cpvlen *input = (struct Ponie_cpvlen *) value;
Perl_sv_setpvn_backend(aTHX_ MUMBLE(SELF), input->pv,
input->len, 0);
}
+ break;
case Ponie_P_PINE_FOR_FJORDS:
{
--PL_sv_count;