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


Reply via email to