[svn:ponie] r343 - trunk/src/pmc
[email protected] 25 Aug 2005 15:45:10 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
Author: nicholas
Date: Thu Aug 25 08:45:09 2005
New Revision: 343
Modified:
trunk/src/pmc/perl5cargo_cult.pmc
Log:
Use sv_clear_backend to avoid direct SvREFCNT_set() games in Ponie_P_REPLACE
Modified: trunk/src/pmc/perl5cargo_cult.pmc
==============================================================================
--- trunk/src/pmc/perl5cargo_cult.pmc (original)
+++ trunk/src/pmc/perl5cargo_cult.pmc Thu Aug 25 08:45:09 2005
@@ -657,7 +657,6 @@ pmclass Perl5cargo_cult dynpmc {
SV *sv = MUMBLE(SELF);
SV *nsv = value;
- U32 refcnt = SvREFCNT(sv);
int type = SvTYPE(nsv);
SV_CHECK_THINKFIRST_COW_DROP(sv);
@@ -675,10 +674,7 @@ pmclass Perl5cargo_cult dynpmc {
SvMAGICAL_off(sv);
SvMAGIC_set(sv, 0);
}
- SvREFCNT_set(sv, 0);
- sv_clear(sv);
- assert(!SvREFCNT(sv));
- SvREFCNT_set(sv, SvREFCNT(nsv));
+ sv_clear_backend(sv, 0);
PERL5_FLAGS(SELF) = SvFLAGS(nsv);
SvANY_set(sv, SvANY(nsv));
/* Because the SV data structure is rearranged */
@@ -691,7 +687,6 @@ pmclass Perl5cargo_cult dynpmc {
SELF->vtable = ((PMC *)MUMBLE(value))->vtable;
- PERL5_REFCNT(SELF) = refcnt;
SvREFCNT_set(nsv, 0);
Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(nsv),
Ponie_P_PINE_FOR_FJORDS, 0);