diff options
author | Vishal Bhatia <vishal@deja.com> | 1998-10-28 15:45:32 -0800 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-30 19:03:50 +0000 |
commit | 7de5877eb7f5b2d92e4a36dccb57f8b05ae591d1 (patch) | |
tree | 38cd9944701df9671a7345fb590c210b565c42f8 /ext/B | |
parent | 4369b1735f5aa251358acad5be8ee26dfbfb02ef (diff) | |
download | perl-7de5877eb7f5b2d92e4a36dccb57f8b05ae591d1.tar.gz |
hand-apply whitespace-mutiliated patch
Message-ID: <19981029074534.2334.qmail@hotmail.com>
Subject: [PATCH 5.005_52]Compiling modules,more bugfixes for B
p4raw-id: //depot/perl@2146
Diffstat (limited to 'ext/B')
-rw-r--r-- | ext/B/B/C.pm | 12 | ||||
-rw-r--r-- | ext/B/B/CC.pm | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/B/B/C.pm b/ext/B/B/C.pm index 1e999e76f1..5b00e2fd6f 100644 --- a/ext/B/B/C.pm +++ b/ext/B/B/C.pm @@ -1062,6 +1062,12 @@ sub B::GV::savecv { warn sprintf("saving extra CV &%s::%s (0x%x) from GV 0x%x\n", $gv->STASH->NAME, $name, $$cv, $$gv); } + my $package=$gv->STASH->NAME; + if ( ! grep(/^$package$/,@unused_sub_packages)){ + warn sprintf("omitting cv in superclass %s", $gv->STASH->NAME) + if $debug_cv; + return ; + } $gv->save; } } @@ -1069,12 +1075,17 @@ sub B::GV::savecv { sub save_unused_subs { my %search_pack; map { $search_pack{$_} = 1 } @_; + @unused_sub_packages=@_; no strict qw(vars refs); walksymtable(\%{"main::"}, "savecv", sub { my $package = shift; $package =~ s/::$//; #warn "Considering $package\n";#debug return 1 if exists $search_pack{$package}; + #sub try for a partial match + if (grep(/^$package\:\:/,@unused_sub_packages)){ + return 1; + } #warn " (nothing explicit)\n";#debug # Omit the packages which we use (and which cause grief # because of fancy "goto &$AUTOLOAD" stuff). @@ -1088,6 +1099,7 @@ sub save_unused_subs { foreach $m (qw(new DESTROY TIESCALAR TIEARRAY TIEHASH)) { if (defined(&{$package."::$m"})) { warn "$package has method $m: -u$package assumed\n";#debug + push @unused_sub_package, $package; return 1; } } diff --git a/ext/B/B/CC.pm b/ext/B/B/CC.pm index c58a8321d6..d200d70f1a 100644 --- a/ext/B/B/CC.pm +++ b/ext/B/B/CC.pm @@ -1063,7 +1063,7 @@ sub pp_return { write_back_lexicals(REGISTER|TEMPORARY); write_back_stack(); doop($op); - runtime("PUTBACK;", "return 0;"); + runtime("PUTBACK;", "return (PL_op)?PL_op->op_next:0;"); $know_op = 0; return $op->next; } @@ -1356,7 +1356,7 @@ sub cc { $need_freetmps = 0; } if (!$$op) { - runtime("PUTBACK;", "return 0;"); + runtime("PUTBACK;","return (PL_op)?PL_op->op_next:0;"); } elsif ($done{$$op}) { runtime(sprintf("goto %s;", label($op))); } |