Message-ID: <
19980604134731.D24343@perlsupport.com>
p4raw-id: //depot/perl@1097
if (empty) {
register GP *gp;
+
+ if (GvCVu(gv))
+ sub_generation++; /* taking a method out of circulation */
Newz(602, gp, 1, GP);
GvGP(gv) = gp_ref(gp);
GvSV(gv) = NEWSV(72,0);
SvLEN(gv) = (STRLEN)SSPOPIV;
gp_free(gv);
GvGP(gv) = (GP*)ptr;
+ if (GvCVu(gv))
+ sub_generation++; /* putting a method back into circulation */
SvREFCNT_dec(gv);
break;
case SAVEt_FREESV:
# test method calls and autoloading.
#
-print "1..24\n";
+print "1..26\n";
@A::ISA = 'B';
@B::ISA = 'C';
delete $B::{d}; # Should work without any help too
test (A->d, "C::d");
+{
+ local *C::d;
+ test (eval { A->d } || "nope", "nope");
+}
+test (A->d, "C::d");
+
*A::x = *A::d; # See if cache incorrectly follows synonyms
A->d;
test (eval { A->x } || "nope", "nope");