Author: nicholas
Date: Fri Jul 8 08:38:18 2005
New Revision: 314
Modified:
trunk/src/pmc/perl5cargo_cult.pmc
trunk/src/pmc/ponie.h
Log:
Send sv_2pv round via the PMC (the bit I missed)
Modified: trunk/src/pmc/perl5cargo_cult.pmc
==============================================================================
--- trunk/src/pmc/perl5cargo_cult.pmc (original)
+++ trunk/src/pmc/perl5cargo_cult.pmc Fri Jul 8 08:38:18 2005
@@ -680,6 +680,20 @@ pmclass Perl5cargo_cult dynpmc {
case Ponie_P_GET_UPGRADE:
Perl_croak(aTHX_ "Can't upgrade that kind of scalar");
break;
+ case Ponie_P_SV_PV:
+ {
+ struct Ponie_pvlen *output = (struct Ponie_pvlen *) value;
+ output->pv = Perl_sv_2pv_backend(aTHX_ MUMBLE(SELF),
+ &(output->len), SV_GMAGIC);
+ }
+ break;
+ case Ponie_P_SV_PV_NO_GMAGIC:
+ {
+ struct Ponie_pvlen *output = (struct Ponie_pvlen *) value;
+ output->pv = Perl_sv_2pv_backend(aTHX_ MUMBLE(SELF),
+ &(output->len), 0);
+ }
+ break;
case Ponie_P_PINE_FOR_FJORDS:
{
--PL_sv_count;
Modified: trunk/src/pmc/ponie.h
==============================================================================
--- trunk/src/pmc/ponie.h (original)
+++ trunk/src/pmc/ponie.h Fri Jul 8 08:38:18 2005
@@ -37,6 +37,13 @@ struct Ponie_upgrade_info {
struct Ponie_upgrade_value value;
};
+/* A structure to return 2 values for sv_2pv */
+
+struct Ponie_pvlen {
+ char *pv;
+ STRLEN len;
+};
+
void Ponie_freescalar_common(SV *sv);
void Ponie_freescalar_common_magic(SV *sv);