summaryrefslogtreecommitdiff
path: root/iseq.h
diff options
context:
space:
mode:
authoreileencodes <eileencodes@gmail.com>2023-04-04 13:18:13 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2023-04-11 10:47:58 -0700
commitce99e50ede4e4981d7b008bbe17f72fa351a5978 (patch)
tree2d67273d3cc5076f3118918c41dbe6f57802eeb0 /iseq.h
parentb4571097df4a6bd848f1195026d82a92f3a7f9d8 (diff)
downloadruby-ce99e50ede4e4981d7b008bbe17f72fa351a5978.tar.gz
Move `catch_except_p` to `compile_data`
The `catch_except_p` flag is used for communicating between parent and child iseq's that a throw instruction was emitted. So for example if a child iseq has a throw in it and the parent wants to catch the throw, we use this flag to communicate to the parent iseq that a throw instruction was emitted. This flag is only useful at compile time, it only impacts the compilation process so it seems to be fine to move it from the iseq body to the compile_data struct. Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
Diffstat (limited to 'iseq.h')
-rw-r--r--iseq.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/iseq.h b/iseq.h
index 96d19029a1..b12228eed9 100644
--- a/iseq.h
+++ b/iseq.h
@@ -126,6 +126,7 @@ struct iseq_compile_data {
struct rb_id_table *ivar_cache_table;
const struct rb_builtin_function *builtin_function_table;
const NODE *root_node;
+ bool catch_except_p; // If a frame of this ISeq may catch exception, set true.
#if OPT_SUPPORT_JOKE
st_table *labels_table;
#endif