Author: gozer Date: Sun Feb 6 00:08:34 2005 New Revision: 151553 URL: http://svn.apache.org/viewcvs?view=rev&rev=151553 Log: Fix bug in modperl_package_clear_stash() segfaulting when encountering declared but not yet defined subroutines.
Reported-By: Steve Hay <[EMAIL PROTECTED]> Modified: perl/modperl/trunk/Changes perl/modperl/trunk/src/modules/perl/modperl_util.c perl/modperl/trunk/t/modules/reload.t Modified: perl/modperl/trunk/Changes URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?view=diff&r1=151552&r2=151553 ============================================================================== --- perl/modperl/trunk/Changes (original) +++ perl/modperl/trunk/Changes Sun Feb 6 00:08:34 2005 @@ -12,6 +12,10 @@ =item 1.999_22-dev +Fix bug in modperl_package_clear_stash() segfaulting when +encountering declared but not yet defined subroutines. +[Steve Hay <[EMAIL PROTECTED]>. Gozer] + win32 needs PERL_SYS_INIT3/PERL_SYS_TERM calls [Steve Hay <[EMAIL PROTECTED]>] Modified: perl/modperl/trunk/src/modules/perl/modperl_util.c URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_util.c?view=diff&r1=151552&r2=151553 ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_util.c (original) +++ perl/modperl/trunk/src/modules/perl/modperl_util.c Sun Feb 6 00:08:34 2005 @@ -773,12 +773,11 @@ key = hv_iterkey(he, &len); if (MP_SAFE_STASH(key, len)) { SV *val = hv_iterval(stash, he); - char *this_stash = HvNAME(GvSTASH(val)); /* The safe thing to do is to skip over stash entries * that don't come from the package we are trying to * unload */ - if (strcmp(this_stash, package) == 0) { + if (GvSTASH(val) == stash) { hv_delete(stash, key, len, G_DISCARD); } } Modified: perl/modperl/trunk/t/modules/reload.t URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/modules/reload.t?view=diff&r1=151552&r2=151553 ============================================================================== --- perl/modperl/trunk/t/modules/reload.t (original) +++ perl/modperl/trunk/t/modules/reload.t Sun Feb 6 00:08:34 2005 @@ -24,6 +24,7 @@ sub simple { 'simple' } use constant const => 'const'; sub prototype($) { 'prototype' } +sub promised; EOF my $modified = <<'EOF';