Change 27740 by [EMAIL PROTECTED] on 2006/04/08 14:46:53 By swapping the order of pushes onto the save stack for SAVEt_GENERIC_PVREF, we can merge it with SAVEt_PPTR in Perl_ss_dup().
Affected files ... ... //depot/perl/scope.c#185 edit ... //depot/perl/sv.c#1227 edit Differences ... ==== //depot/perl/scope.c#185 (text) ==== Index: perl/scope.c --- perl/scope.c#184~27732~ 2006-04-06 08:52:37.000000000 -0700 +++ perl/scope.c 2006-04-08 07:46:53.000000000 -0700 @@ -226,8 +226,8 @@ { dVAR; SSCHECK(3); - SSPUSHPTR(str); SSPUSHPTR(*str); + SSPUSHPTR(str); SSPUSHINT(SAVEt_GENERIC_PVREF); } @@ -643,8 +643,8 @@ SvREFCNT_dec(av); break; case SAVEt_GENERIC_PVREF: /* generic pv */ - str = (char*)SSPOPPTR; ptr = SSPOPPTR; + str = (char*)SSPOPPTR; if (*(char**)ptr != str) { Safefree(*(char**)ptr); *(char**)ptr = str; ==== //depot/perl/sv.c#1227 (text) ==== Index: perl/sv.c --- perl/sv.c#1226~27739~ 2006-04-08 06:43:46.000000000 -0700 +++ perl/sv.c 2006-04-08 07:46:53.000000000 -0700 @@ -10382,12 +10382,6 @@ gv = (GV*)POPPTR(ss,ix); TOPPTR(nss,ix) = gv_dup_inc(gv, param); break; - case SAVEt_GENERIC_PVREF: /* generic char* */ - c = (char*)POPPTR(ss,ix); - TOPPTR(nss,ix) = pv_dup(c); - ptr = POPPTR(ss,ix); - TOPPTR(nss,ix) = any_dup(ptr, proto_perl); - break; case SAVEt_SHARED_PVREF: /* char* in shared space */ c = (char*)POPPTR(ss,ix); TOPPTR(nss,ix) = savesharedpv(c); @@ -10452,6 +10446,7 @@ ptr = POPPTR(ss,ix); TOPPTR(nss,ix) = any_dup(ptr, proto_perl); break; + case SAVEt_GENERIC_PVREF: /* generic char* */ case SAVEt_PPTR: /* char* reference */ ptr = POPPTR(ss,ix); TOPPTR(nss,ix) = any_dup(ptr, proto_perl); End of Patch.