Front page | perl.ponie.changes |
Postings from August 2005
[svn:ponie] r351 - in trunk: perl src/pmc
From:
nicholas
Date:
August 29, 2005 08:22
Subject:
[svn:ponie] r351 - in trunk: perl src/pmc
Message ID:
20050829152149.22095.qmail@x1.develooper.com
Author: nicholas
Date: Mon Aug 29 08:21:49 2005
New Revision: 351
Modified:
trunk/perl/sv.c
trunk/perl/sv.h
trunk/perl/universal.c
trunk/src/pmc/perl5cargo_cult.pmc
Log:
Remove SvREFCNT_set
Modified: trunk/perl/sv.c
==============================================================================
--- trunk/perl/sv.c (original)
+++ trunk/perl/sv.c Mon Aug 29 08:21:49 2005
@@ -4995,7 +4995,8 @@ Perl_sv_free(pTHX_ SV *sv)
return;
if (SvREADONLY(sv) && SvIMMORTAL(sv)) {
/* make sure SvREFCNT(sv)==0 happens very seldom */
- SvREFCNT_set(sv, (~(U32)0)/2);
+ Perl_croak("Immortal %p hit refcnt of 0 - this is not possible",
+ sv);
return;
}
if (ckWARN_d(WARN_INTERNAL)) {
@@ -5030,7 +5031,7 @@ Perl_sv_free2(pTHX_ SV *sv)
#endif
if (SvREADONLY(sv) && SvIMMORTAL(sv)) {
/* make sure SvREFCNT(sv)==0 happens very seldom */
- SvREFCNT_set(sv, (~(U32)0)/2);
+ Perl_croak("Immortal %p hit refcnt of 0 - this is not possible", sv);
return;
}
sv_clear(sv);
Modified: trunk/perl/sv.h
==============================================================================
--- trunk/perl/sv.h (original)
+++ trunk/perl/sv.h Mon Aug 29 08:21:49 2005
@@ -136,7 +136,6 @@ perform the upgrade if necessary. See C
#define SvANY_set(sv, p) Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(sv), Ponie_P_ANY, p)
#define SvREFCNT(sv) ((U32)Parrot_PMC_get_intval_intkey(PL_Parrot, MUMBLE(sv), Ponie_I_SV_REFCNT))
-#define SvREFCNT_set(sv, v) Parrot_PMC_set_intval_intkey(PL_Parrot, MUMBLE(sv), Ponie_I_SV_REFCNT, v)
#if defined(PERL_CORE) && defined(PERL_IN_SV_C)
/* sv.c will be replaced with PMC code to clone things etc, so little point
Modified: trunk/perl/universal.c
==============================================================================
--- trunk/perl/universal.c (original)
+++ trunk/perl/universal.c Mon Aug 29 08:21:49 2005
@@ -778,9 +778,8 @@ XS(XS_Internals_SvREFCNT) /* This is dan
if (items == 1)
XSRETURN_IV(SvREFCNT(sv) - 1); /* Minus the ref created for us. */
else if (items == 2) {
- /* I hope you really know what you are doing. */
- SvREFCNT_set(sv, SvIV(ST(1)));
- XSRETURN_IV(SvREFCNT(sv));
+ Perl_croak(aTHX_
+ "Using Internals::SvREFCNT to set the refcnt is illegal");
}
XSRETURN_UNDEF; /* Can't happen. */
}
Modified: trunk/src/pmc/perl5cargo_cult.pmc
==============================================================================
--- trunk/src/pmc/perl5cargo_cult.pmc (original)
+++ trunk/src/pmc/perl5cargo_cult.pmc Mon Aug 29 08:21:49 2005
@@ -690,7 +690,10 @@ pmclass Perl5cargo_cult dynpmc {
SELF->vtable = ((PMC *)MUMBLE(value))->vtable;
- SvREFCNT_set(nsv, 0);
+ /* Refcount of nsv is asserted to be 1, so this is a set to
+ zero. */
+ Parrot_PMC_set_intval_intkey(INTERP, MUMBLE(nsv),
+ Ponie_I_SV_REFCNT_INC, -1);
Parrot_PMC_set_pointer_intkey(PL_Parrot, MUMBLE(nsv),
Ponie_P_PINE_FOR_FJORDS, 0);
}
-
[svn:ponie] r351 - in trunk: perl src/pmc
by nicholas