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';