diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-11 04:17:45 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-11 04:17:45 +0000 |
commit | bb66691e7e205c5f04c62741f212db1a94388bb3 (patch) | |
tree | ac6f94e64a14721fbe6503f03bf064d3c3a96c15 /vm_insnhelper.c | |
parent | 2cb399af44a16ed0b593b3b9e5cea1fc736073d3 (diff) |
vm_insnhelper.c: CHECK_CFP_CONSISTENCY
* vm_insnhelper.c (CHECK_CFP_CONSISTENCY): make [BUG] messages
consistent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 21a358cb30..ae4d1b2a1b 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1715,6 +1715,10 @@ vm_profile_show_result(void) #define VM_PROFILE_ATEXIT() #endif +#define CHECK_CFP_CONSISTENCY(func) \ + LIKELY(reg_cfp == th->cfp + 1) ? (void) 0 : \ + rb_bug(func ": cfp consistency error (%p, %p)", reg_cfp, th->cfp+1) + static inline const rb_method_cfunc_t * vm_method_cfunc_entry(const rb_callable_method_entry_t *me) @@ -1768,9 +1772,7 @@ vm_call_cfunc_with_frame(rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb VM_PROFILE_UP(R2C_CALL); val = (*cfunc->invoker)(cfunc->func, recv, argc, reg_cfp->sp + 1); - if (reg_cfp != th->cfp + 1) { - rb_bug("vm_call_cfunc - cfp consistency error"); - } + CHECK_CFP_CONSISTENCY("vm_call_cfunc"); rb_vm_pop_frame(th); @@ -1804,9 +1806,7 @@ vm_call_cfunc_latter(rb_thread_t *th, rb_control_frame_t *reg_cfp, struct rb_cal th->passed_ci = 0; } else { - if (UNLIKELY(reg_cfp != RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp))) { - rb_bug("vm_call_cfunc_latter: cfp consistency error (%p, %p)", reg_cfp, th->cfp+1); - } + CHECK_CFP_CONSISTENCY("vm_call_cfunc_latter"); vm_pop_frame(th, reg_cfp, reg_cfp->ep); VM_PROFILE_UP(R2C_POPF); } |