Mercurial > repos > blastem
comparison m68k_core.c @ 1341:f1607874dbee
Fix intermittent crash due to an inadvertent executable memory allocation in m68k instruction retranslation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 04 May 2017 21:06:35 -0700 |
parents | 85a90964b557 |
children | df6af7187b36 |
comparison
equal
deleted
inserted
replaced
1340:101b5ce682fe | 1341:f1607874dbee |
---|---|
1093 jmp(&orig_code, native_start); | 1093 jmp(&orig_code, native_start); |
1094 if (!m68k_is_terminal(&instbuf)) { | 1094 if (!m68k_is_terminal(&instbuf)) { |
1095 code_ptr native_end = code->cur; | 1095 code_ptr native_end = code->cur; |
1096 code->cur = native_start + MAX_NATIVE_SIZE; | 1096 code->cur = native_start + MAX_NATIVE_SIZE; |
1097 code_ptr rest = get_native_address_trans(context, orig + (after-inst)*2); | 1097 code_ptr rest = get_native_address_trans(context, orig + (after-inst)*2); |
1098 code_ptr tmp = code->cur; | 1098 code_info tmp_code = { |
1099 code->cur = native_end; | 1099 .cur = native_end, |
1100 jmp(code, rest); | 1100 .last = native_start + MAX_NATIVE_SIZE, |
1101 code->cur = tmp; | 1101 .stack_off = code->stack_off |
1102 }; | |
1103 jmp(&tmp_code, rest); | |
1102 } else { | 1104 } else { |
1103 code->cur = native_start + MAX_NATIVE_SIZE; | 1105 code->cur = native_start + MAX_NATIVE_SIZE; |
1104 } | 1106 } |
1105 m68k_handle_deferred(context); | 1107 m68k_handle_deferred(context); |
1106 return native_start; | 1108 return native_start; |