diff options
author | Vishal Bhatia <vishal@deja.com> | 1999-01-17 08:41:10 -0800 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-01-18 05:56:21 +0000 |
commit | 2c0b28dd04ba275e235e067ac76a0a841338c8a2 (patch) | |
tree | 84a52aa9ceae8138386e72fb14ce5176f2a44f26 /ext | |
parent | 52a3d2a938a7a240eea131aeb662fbbdf694a73b (diff) | |
download | perl-2c0b28dd04ba275e235e067ac76a0a841338c8a2.tar.gz |
Duplicate saved ops (CC.pm)
Message-Id: <19990118004111.29667.qmail@hotmail.com>
p4raw-id: //depot/perl@2639
Diffstat (limited to 'ext')
-rw-r--r-- | ext/B/B/C.pm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ext/B/B/C.pm b/ext/B/B/C.pm index 37eaa231c4..647ae5ec82 100644 --- a/ext/B/B/C.pm +++ b/ext/B/B/C.pm @@ -152,6 +152,8 @@ sub savepv { sub B::OP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; my $type = $op->type; $nullop_count++ unless $type; if ($type == $OP_THREADSV) { @@ -188,6 +190,8 @@ sub B::FAKEOP::private { $_[0]->{private} || 0 } sub B::UNOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $unopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -197,6 +201,8 @@ sub B::UNOP::save { sub B::BINOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $binopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -206,6 +212,8 @@ sub B::BINOP::save { sub B::LISTOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $listopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, %u", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -216,6 +224,8 @@ sub B::LISTOP::save { sub B::LOGOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $logopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -225,6 +235,8 @@ sub B::LOGOP::save { sub B::CONDOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $condopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, s\\_%x, s\\_%x, s\\_%x", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -235,6 +247,8 @@ sub B::CONDOP::save { sub B::LOOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; #warn sprintf("LOOP: redoop %s, nextop %s, lastop %s\n", # peekop($op->redoop), peekop($op->nextop), # peekop($op->lastop)); # debug @@ -249,6 +263,8 @@ sub B::LOOP::save { sub B::PVOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; $pvopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, %s", ${$op->next}, ${$op->sibling}, $op->ppaddr, $op->targ, $op->type, $op_seq, $op->flags, @@ -258,6 +274,8 @@ sub B::PVOP::save { sub B::SVOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; my $svsym = $op->sv->save; $svopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, %s", ${$op->next}, ${$op->sibling}, $op->ppaddr, @@ -268,6 +286,8 @@ sub B::SVOP::save { sub B::GVOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; my $gvsym = $op->gv->save; $gvopsect->add(sprintf("s\\_%x, s\\_%x, %s, %u, %u, %u, 0x%x, 0x%x, Nullgv", ${$op->next}, ${$op->sibling}, $op->ppaddr, @@ -279,6 +299,8 @@ sub B::GVOP::save { sub B::COP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; my $gvsym = $op->filegv->save; my $stashsym = $op->stash->save; warn sprintf("COP: line %d file %s\n", $op->line, $op->filegv->SV->PV) @@ -296,6 +318,8 @@ sub B::COP::save { sub B::PMOP::save { my ($op, $level) = @_; + my $sym = objsym($op); + return $sym if defined $sym; my $replroot = $op->pmreplroot; my $replstart = $op->pmreplstart; my $replrootfield = sprintf("s\\_%x", $$replroot); |