You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by go...@apache.org on 2005/06/02 00:44:02 UTC
svn commit: r179448 - in /perl/modperl/trunk: Changes t/modules/reload.t
t/response/TestModules/reload.pm xs/ModPerl/Util/Util_pm
Author: gozer
Date: Wed Jun 1 15:44:01 2005
New Revision: 179448
URL: http://svn.apache.org/viewcvs?rev=179448&view=rev
Log:
The pure-perl ModPerl::Util::unload_package implementation was
accidently deleting sub-stashes.
Reported-by: Mark <ma...@immermail.com>
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/t/modules/reload.t
perl/modperl/trunk/t/response/TestModules/reload.pm
perl/modperl/trunk/xs/ModPerl/Util/Util_pm
Modified: perl/modperl/trunk/Changes
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?rev=179448&r1=179447&r2=179448&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Wed Jun 1 15:44:01 2005
@@ -12,6 +12,9 @@
=item 2.0.1-dev
+The pure-perl ModPerl::Util::unload_package implementation was
+accidently deleting sub-stashes [Gozer]
+
If running Makefile.PL unnatended (STDIN isn't a terminal or
MP_PROMPT_DEFAULT=1), break out of potentially infinite prompt
loops [Gozer]
Modified: perl/modperl/trunk/t/modules/reload.t
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/modules/reload.t?rev=179448&r1=179447&r2=179448&view=diff
==============================================================================
--- perl/modperl/trunk/t/modules/reload.t (original)
+++ perl/modperl/trunk/t/modules/reload.t Wed Jun 1 15:44:01 2005
@@ -16,7 +16,7 @@
my $module = 'TestModules::reload';
my $location = '/' . Apache::TestRequest::module2path($module);
-my @tests = qw(simple const prototype);
+my @tests = qw(simple const prototype subpackage);
my $header = join '', <DATA>;
@@ -95,7 +95,9 @@
use Apache2::Reload;
-our @methods = qw(simple const prototype);
+our @methods = qw(simple const prototype subpackage);
+
+sub subpackage { return Apache2::Reload::Test::SubPackage::subpackage() }
sub run {
my $r = shift;
Modified: perl/modperl/trunk/t/response/TestModules/reload.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/response/TestModules/reload.pm?rev=179448&r1=179447&r2=179448&view=diff
==============================================================================
--- perl/modperl/trunk/t/response/TestModules/reload.pm (original)
+++ perl/modperl/trunk/t/response/TestModules/reload.pm Wed Jun 1 15:44:01 2005
@@ -9,9 +9,11 @@
my $package = 'Apache2::Reload::Test';
+our $pass = 0;
+
sub handler {
my $r = shift;
-
+ $pass++;
if ($r->args eq 'last') {
Apache2::Reload->unregister_module($package);
ModPerl::Util::unload_package($package);
@@ -24,6 +26,18 @@
Apache2::Reload::Test::run($r);
return Apache2::Const::OK;
+}
+
+#This one shouldn't be touched
+package Apache2::Reload::Test::SubPackage;
+
+sub subpackage {
+ if ($TestModules::reload::pass == '2') {
+ return 'subpackage';
+ }
+ else {
+ return 'SUBPACKAGE';
+ }
}
1;
Modified: perl/modperl/trunk/xs/ModPerl/Util/Util_pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/xs/ModPerl/Util/Util_pm?rev=179448&r1=179447&r2=179448&view=diff
==============================================================================
--- perl/modperl/trunk/xs/ModPerl/Util/Util_pm (original)
+++ perl/modperl/trunk/xs/ModPerl/Util/Util_pm Wed Jun 1 15:44:01 2005
@@ -16,6 +16,9 @@
# alias but the original function as well
for (keys %$tab) {
+ #Skip sub stashes
+ next if /::$/;
+
my $fullname = join '::', $package, $_;
# code/hash/array/scalar might be imported make sure the gv
# does not point elsewhere before undefing each