in reply to Re^2: How can I turn an op address into the right kind of B::OP?
in thread How can I turn an op address into the right kind of B::OP?

You're printing the address of the B objects, not the address of the ops themselves.

printf("op: %s (0x%x), parent: %s (0x%x)\n", $op->name, $$op, $parent->name, $$parent);
op: padsv (0x104cc20), parent: sassign (0xfc7788)
# 42: my $addr = $site->(); COP (0xfc7728) nextstate BINOP (0xfc7788) sassign UNOP (0xfc77d0) entersub [4] UNOP (0xfc7848) null [157] OP (0xfc7810) pushmark UNOP (0xfc7890) null [16] OP (0xfc78d0) padsv [1] OP (0x104cc20) padsv [3]

Replies are listed 'Best First'.
Re^4: How can I turn an op address into the right kind of B::OP?
by rockyb (Scribe) on Jul 18, 2018 at 22:23 UTC

    Thanks for the information and clarification.

    I need to put all of this on hold and focus on other things, but if/when I come back to this I'll use your suggestions with respect to copying ext/B/B.xs in Perl versions other than 5.26.