summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compile.c2
-rw-r--r--version.h2
-rw-r--r--vm_core.h1
-rw-r--r--vm_insnhelper.c11
4 files changed, 14 insertions, 2 deletions
diff --git a/compile.c b/compile.c
index f252339ee5..c20ef48c43 100644
--- a/compile.c
+++ b/compile.c
@@ -12311,7 +12311,7 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
verify_call_cache(iseq);
RB_GC_GUARD(dummy_frame);
- rb_vm_pop_frame(ec);
+ rb_vm_pop_frame_no_int(ec);
}
struct ibf_dump_iseq_list_arg
diff --git a/version.h b/version.h
index e5f8bcfa96..74eb7be93a 100644
--- a/version.h
+++ b/version.h
@@ -11,7 +11,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
-#define RUBY_PATCHLEVEL 18
+#define RUBY_PATCHLEVEL 19
#include "ruby/version.h"
#include "ruby/internal/abi.h"
diff --git a/vm_core.h b/vm_core.h
index 4f6e07d818..d86fdbaecd 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -1747,6 +1747,7 @@ const VALUE *rb_binding_add_dynavars(VALUE bindval, rb_binding_t *bind, int dync
void rb_vm_inc_const_missing_count(void);
VALUE rb_vm_call_kw(rb_execution_context_t *ec, VALUE recv, VALUE id, int argc,
const VALUE *argv, const rb_callable_method_entry_t *me, int kw_splat);
+void rb_vm_pop_frame_no_int(rb_execution_context_t *ec);
MJIT_STATIC void rb_vm_pop_frame(rb_execution_context_t *ec);
void rb_thread_start_timer_thread(void);
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index f9b91a0102..8b1542bd1a 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -405,6 +405,17 @@ vm_push_frame(rb_execution_context_t *ec,
vm_push_frame_debug_counter_inc(ec, cfp, type);
}
+void
+rb_vm_pop_frame_no_int(rb_execution_context_t *ec)
+{
+ rb_control_frame_t *cfp = ec->cfp;
+
+ if (VM_CHECK_MODE >= 4) rb_gc_verify_internal_consistency();
+ if (VMDEBUG == 2) SDR();
+
+ ec->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
+}
+
/* return TRUE if the frame is finished */
static inline int
vm_pop_frame(rb_execution_context_t *ec, rb_control_frame_t *cfp, const VALUE *ep)