nwc10+ (Nicholas Clark)
2007-01-18 23:45:02 UTC
Change 29876 by ***@entropy on 2007/01/18 23:36:57
Move the flag checking for isGV_with_GP() into the call to visit()
Affected files ...
... //depot/perl/sv.c#1357 edit
Differences ...
==== //depot/perl/sv.c#1357 (text) ====
Index: perl/sv.c
--- perl/sv.c#1356~29872~ 2007-01-18 07:48:13.000000000 -0800
+++ perl/sv.c 2007-01-18 15:36:57.000000000 -0800
@@ -471,7 +471,8 @@
{
dVAR;
assert(SvTYPE(sv) == SVt_PVGV);
- if (isGV_with_GP(sv) && GvGP(sv)) {
+ assert(isGV_with_GP(sv));
+ if (GvGP(sv)) {
if ((
#ifdef PERL_DONT_CREATE_GVSV
GvSV(sv) &&
@@ -506,7 +507,7 @@
visit(do_clean_objs, SVf_ROK, SVf_ROK);
#ifndef DISABLE_DESTRUCTOR_KLUDGE
/* some barnacles may yet remain, clinging to typeglobs */
- visit(do_clean_named_objs, SVt_PVGV, SVTYPEMASK);
+ visit(do_clean_named_objs, SVt_PVGV|SVpgv_GP, SVTYPEMASK|SVp_POK|SVpgv_GP);
#endif
PL_in_clean_objs = FALSE;
}
End of Patch.
Move the flag checking for isGV_with_GP() into the call to visit()
Affected files ...
... //depot/perl/sv.c#1357 edit
Differences ...
==== //depot/perl/sv.c#1357 (text) ====
Index: perl/sv.c
--- perl/sv.c#1356~29872~ 2007-01-18 07:48:13.000000000 -0800
+++ perl/sv.c 2007-01-18 15:36:57.000000000 -0800
@@ -471,7 +471,8 @@
{
dVAR;
assert(SvTYPE(sv) == SVt_PVGV);
- if (isGV_with_GP(sv) && GvGP(sv)) {
+ assert(isGV_with_GP(sv));
+ if (GvGP(sv)) {
if ((
#ifdef PERL_DONT_CREATE_GVSV
GvSV(sv) &&
@@ -506,7 +507,7 @@
visit(do_clean_objs, SVf_ROK, SVf_ROK);
#ifndef DISABLE_DESTRUCTOR_KLUDGE
/* some barnacles may yet remain, clinging to typeglobs */
- visit(do_clean_named_objs, SVt_PVGV, SVTYPEMASK);
+ visit(do_clean_named_objs, SVt_PVGV|SVpgv_GP, SVTYPEMASK|SVp_POK|SVpgv_GP);
#endif
PL_in_clean_objs = FALSE;
}
End of Patch.