summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2019-07-19 14:54:31 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2019-07-19 15:46:56 +1200
commit6eef80d824aa4aca91ff13ea215f5cd053d16906 (patch)
treea5e8311ea459a7cf2b513601d47eed0be3b33226 /vm.c
parent63160a84b42cd3a7924e5abe94bbb08bb566f24b (diff)
Improve ec assertions.
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/vm.c b/vm.c
index 13b302a27b..c030be644f 100644
--- a/vm.c
+++ b/vm.c
@@ -2443,6 +2443,8 @@ rb_execution_context_update(const rb_execution_context_t *ec)
{
/* update VM stack */
if (ec->vm_stack) {
+ VM_ASSERT(ec->cfp);
+
rb_control_frame_t *cfp = ec->cfp;
rb_control_frame_t *limit_cfp = (void *)(ec->vm_stack + ec->vm_stack_size);
@@ -2461,23 +2463,17 @@ rb_execution_context_update(const rb_execution_context_t *ec)
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
}
+ } else {
+ VM_ASSERT(!ec->cfp);
}
-#if VM_CHECK_MODE > 0
- void rb_ec_verify(const rb_execution_context_t *ec); /* cont.c */
- rb_ec_verify(ec);
-#endif
}
void
rb_execution_context_mark(const rb_execution_context_t *ec)
{
-#if VM_CHECK_MODE > 0
- void rb_ec_verify(const rb_execution_context_t *ec); /* cont.c */
- rb_ec_verify(ec);
-#endif
-
/* mark VM stack */
if (ec->vm_stack) {
+ VM_ASSERT(ec->cfp);
VALUE *p = ec->vm_stack;
VALUE *sp = ec->cfp->sp;
rb_control_frame_t *cfp = ec->cfp;
@@ -2501,6 +2497,8 @@ rb_execution_context_mark(const rb_execution_context_t *ec)
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
}
+ } else {
+ VM_ASSERT(!ec->cfp);
}
/* mark machine stack */