You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Stas Bekman <st...@stason.org> on 2001/12/04 07:21:41 UTC

[patch] noedit warnings cache removal

Currently if there are two calls to generate noedit warnings from the same
package, only the first call will produce the correct info. I guess that's
because when I've added tracing I didn't remove the caching feature.

So this patch removes the caching of the noedit preamble and generates a
fresh noedit header + trace for each invocation.

Index: lib/Apache/Build.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/Apache/Build.pm,v
retrieving revision 1.74
diff -u -r1.74 Build.pm
--- lib/Apache/Build.pm	2001/11/22 03:46:47	1.74
+++ lib/Apache/Build.pm	2001/12/04 05:59:04
@@ -417,11 +417,8 @@
     chmod 0755, $file;
 }

-my $noedit_warning_hash;
-
 sub noedit_warning_hash {
-    $noedit_warning_hash ||=
-      ModPerl::Code::noedit_warning_hash(__PACKAGE__);
+    ModPerl::Code::noedit_warning_hash(__PACKAGE__);
 }

 sub save {
Index: lib/ModPerl/Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.72
diff -u -r1.72 Code.pm
--- lib/ModPerl/Code.pm	2001/11/24 01:15:01	1.72
+++ lib/ModPerl/Code.pm	2001/12/04 05:59:04
@@ -555,8 +555,6 @@
     [(map { "$_.c" } @c_names), (map { "$_.h" } @h_names)];
 }

-my %warnings;
-
 sub classname {
     my $self = shift || __PACKAGE__;
     ref($self) || $self;
@@ -564,12 +562,11 @@

 sub noedit_warning_c {
     my $class = classname(shift);
-    my $warning = \$warnings{C}->{$class};
-    return $$warning if $$warning;
+
     my $v = join '/', $class, $class->VERSION;
     my $trace = Apache::TestConfig::calls_trace();
     $trace =~ s/^/ * /mg;
-    $$warning = <<EOF;
+    return <<EOF;

 /*
  * *********** WARNING **************
@@ -586,10 +583,9 @@
 #non-Perl files, e.g. Makefile, typemap, etc.
 sub noedit_warning_hash {
     my $class = classname(shift);
-    my $warning = \$warnings{hash}->{$class};
-    return $$warning if $$warning;
-    ($$warning = noedit_warning_c($class)) =~ s/^/\# /mg;
-    $$warning;
+
+    (my $warning = noedit_warning_c($class)) =~ s/^/\# /mg;
+    return $warning;
 }

 sub init_file {


_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [patch] noedit warnings cache removal

Posted by Doug MacEachern <do...@covalent.net>.
On Tue, 4 Dec 2001, Stas Bekman wrote:

> Currently if there are two calls to generate noedit warnings from the same
> package, only the first call will produce the correct info. I guess that's
> because when I've added tracing I didn't remove the caching feature.
> 
> So this patch removes the caching of the noedit preamble and generates a
> fresh noedit header + trace for each invocation.

+1


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org