diff options
Diffstat (limited to 'src/lj_mcode.c')
-rw-r--r-- | src/lj_mcode.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lj_mcode.c b/src/lj_mcode.c index fc67eaee..b34d7c85 100644 --- a/src/lj_mcode.c +++ b/src/lj_mcode.c | |||
@@ -269,6 +269,7 @@ static void mcode_allocarea(jit_State *J) | |||
269 | ((MCLink *)J->mcarea)->next = oldarea; | 269 | ((MCLink *)J->mcarea)->next = oldarea; |
270 | ((MCLink *)J->mcarea)->size = sz; | 270 | ((MCLink *)J->mcarea)->size = sz; |
271 | J->szallmcarea += sz; | 271 | J->szallmcarea += sz; |
272 | J->mcbot = (MCode *)lj_err_register_mcode(J->mcarea, sz, (uint8_t *)J->mcbot); | ||
272 | } | 273 | } |
273 | 274 | ||
274 | /* Free all MCode areas. */ | 275 | /* Free all MCode areas. */ |
@@ -279,7 +280,9 @@ void lj_mcode_free(jit_State *J) | |||
279 | J->szallmcarea = 0; | 280 | J->szallmcarea = 0; |
280 | while (mc) { | 281 | while (mc) { |
281 | MCode *next = ((MCLink *)mc)->next; | 282 | MCode *next = ((MCLink *)mc)->next; |
282 | mcode_free(J, mc, ((MCLink *)mc)->size); | 283 | size_t sz = ((MCLink *)mc)->size; |
284 | lj_err_deregister_mcode(mc, sz, (uint8_t *)mc + sizeof(MCLink)); | ||
285 | mcode_free(J, mc, sz); | ||
283 | mc = next; | 286 | mc = next; |
284 | } | 287 | } |
285 | } | 288 | } |