diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-07 11:13:57 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-07 11:13:57 +0000 |
commit | 0d1a905edb43fe9260302b286d04cec66f7c4416 (patch) | |
tree | fdb10453a3e6c04d81a535a4439f2f868f2c2fd6 /insns.def | |
parent | fca3c408a72cc11bb065bf253bfe00dde4f92b9e (diff) | |
download | ruby-0d1a905edb43fe9260302b286d04cec66f7c4416.tar.gz |
* vm_exec.c, insns.def (leave): solve problems on
OPT_CALL_THREADED_CODE.
Catch up finish frame structure on OPT_CALL_THREADED_CODE.
* vm_core.h: add rb_thread_t#retval for temporary space on
OPT_CALL_THREADED_CODE.
* vm.c (th_init): clear rb_thread_t#retval as Qundef.
* vm_dump.c (rb_vmdebug_debug_print_pre): fix debug print format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1116,10 +1116,12 @@ leave RUBY_VM_CHECK_INTS(th); if (UNLIKELY(VM_FRAME_TYPE_FINISH_P(GET_CFP()))) { + vm_pop_frame(th); + #if OPT_CALL_THREADED_CODE - rb_bug("unused instruction on OPT_CALL_THREADED_CODE"); + th->retval = val; + return 0; #else - vm_pop_frame(th); return val; #endif } |