stas 2003/01/27 20:53:15 Modified: lib/Apache Status.pm Log: - CGI.pm's script_name() appears to be broken, use $r->location instead - handle gracefully the stash dump for a child that doesn't have that stash Revision Changes Path 1.2 +15 -12 modperl-2.0/lib/Apache/Status.pm Index: Status.pm =================================================================== RCS file: /home/cvs/modperl-2.0/lib/Apache/Status.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Status.pm 25 Jan 2003 13:26:11 -0000 1.1 +++ Status.pm 28 Jan 2003 04:53:15 -0000 1.2 @@ -312,7 +312,6 @@ my($r, $q) = @_; my($name, $type) = (split "/", $r->uri)[-2,-1]; - my $script = $q->script_name; no strict 'refs'; my @retval = "Data Dump of $name $type <pre>\n"; @@ -336,17 +335,21 @@ no strict 'refs'; my($name, $type) = (split "/", $r->uri)[-2,-1]; + # could be another child, which doesn't have this symbol table? + return unless *$name{CODE}; + my @retval = "Subroutine info for <b>$name</b> <pre>\n"; - my $script = $q->script_name; my $obj = B::svref_2object(*$name{CODE}); my $file = cv_file($obj); my $stash = $obj->GV->STASH->NAME; + my $script = $r->location; push @retval, "File: ", (-e $file ? qq(<a href="file:$file">$file</a>) : $file), "\n"; my $cv = $obj->GV->CV; my $proto = $cv->PV if $cv->can('PV'); + push @retval, qq(Package: <a href="$script?$stash">$stash</a>\n); push @retval, "Line: ", $obj->GV->LINE, "\n"; push @retval, "Prototype: ", $proto || "none", "\n"; @@ -376,7 +379,7 @@ return unless eval { require B::Graph }; B::Graph->UNIVERSAL::VERSION('0.03'); - my $script = $q->script_name; + my $script = $r->location; return qq(\n<a href="$script/$name?noh_b_graph">OP Tree Graph</a>\n); } @@ -386,7 +389,7 @@ return unless status_config($r, "StatusLexInfo"); return unless eval { require B::LexInfo }; - my $script = $q->script_name; + my $script = $q->location; return qq(\n<a href="$script/$name?noh_b_lexinfo">Lexical Info</a>\n); } @@ -411,7 +414,7 @@ return unless status_config($r, "StatusTerse"); return unless eval { require B::Terse }; - my $script = $q->script_name; + my $script = $r->location; my @retval; for (qw(exec slow)) { my $exp = "$b_terse_exp{$_} order"; @@ -440,7 +443,7 @@ return unless status_config($r, "StatusTerseSize"); return unless eval { require B::TerseSize }; - my $script = $q->script_name; + my $script = $r->location; my @retval; for (qw(exec slow)) { my $exp = "$b_terse_exp{$_} order"; @@ -471,7 +474,7 @@ return unless status_config($r, "StatusPackageSize"); return unless eval { require B::TerseSize }; - my $script = $q->script_name; + my $script = $r->location; qq(<a href="$script/$name?noh_b_package_size">Memory Usage</a>\n); } @@ -485,7 +488,7 @@ no strict 'refs'; my($package) = (split "/", $r->uri)[-1]; - my $script = $q->script_name; + my $script = $r->location; $r->print("Memory Usage for package $package\n\n"); my($subs, $opcount, $opsize) = B::TerseSize::package_size($package); $r->print("Totals: $opsize bytes | $opcount OPs\n\n"); @@ -525,7 +528,7 @@ return unless eval { require B::Deparse }; return unless $B::Deparse::VERSION >= 0.59; - my $script = $q->script_name; + my $script = $r->location; return qq(\n<a href="$script/$name?noh_b_deparse">Deparse</a>\n); } @@ -549,7 +552,7 @@ return unless eval { require B::Fathom }; return unless $B::Fathom::VERSION >= 0.05; - my $script = $q->script_name; + my $script = $r->location; return qq(\n<a href="$script/$name?noh_b_fathom">Fathom Score</a>\n); } @@ -571,7 +574,7 @@ return unless status_config($r, "StatusPeek"); return unless $is_installed{"Apache::Peek"}; - my $script = $q->script_name; + my $script = $r->location; return qq(\n<a href="$script/$name/$type?noh_peek">Peek Dump</a>\n); } @@ -592,7 +595,7 @@ return unless $is_installed{"B::Xref"}; - my $script = $q->script_name; + my $script = $r->location; return qq(\n<a href="$script/$name?noh_xref">Cross Reference Report</a>\n); }