From 6c7ee4e8f3b6e3de121681ae93e14fd9e6e01c0d Mon Sep 17 00:00:00 2001 From: Stefan Seifert Date: Sun, 7 Jun 2020 14:44:30 +0200 Subject: [PATCH] Add a method for clearing a cached index on a MAST::Frame When frames are written to multiple bytecode streams, they must not retain their cached indexes as those won't be valid for all streams. --- lib/MAST/Nodes.nqp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/MAST/Nodes.nqp b/lib/MAST/Nodes.nqp index 8090748740..e920a274e2 100644 --- a/lib/MAST/Nodes.nqp +++ b/lib/MAST/Nodes.nqp @@ -959,6 +959,11 @@ class MAST::Frame is MAST::Node { } } + method clear_index() { + $!frame_idx := -1; + $!flags := nqp::bitand_i($!flags, nqp::bitneg_i($FRAME_FLAG_HAS_INDEX)); + } + method set_index(int $idx) { $!frame_idx := $idx; $!flags := nqp::bitor_i($!flags, $FRAME_FLAG_HAS_INDEX);