diff options
author | Mike Pall <mike> | 2019-12-08 19:56:56 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2019-12-08 19:56:56 +0100 |
commit | 92fa45f9eb5d9aa732c6b972a85c26120d7612b4 (patch) | |
tree | d77d6d6d99b040b38d9c596528aeea02044a3814 /src/lj_obj.h | |
parent | 9600e4318e17ef73d73c1980008d648c1c98f959 (diff) | |
download | luajit-92fa45f9eb5d9aa732c6b972a85c26120d7612b4.tar.gz luajit-92fa45f9eb5d9aa732c6b972a85c26120d7612b4.tar.bz2 luajit-92fa45f9eb5d9aa732c6b972a85c26120d7612b4.zip |
Fix interaction between profiler hooks and finalizers.
Thanks to Julien Desgats.
Diffstat (limited to 'src/lj_obj.h')
-rw-r--r-- | src/lj_obj.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_obj.h b/src/lj_obj.h index 72b7ace8..5d5cc49b 100644 --- a/src/lj_obj.h +++ b/src/lj_obj.h | |||
@@ -638,7 +638,8 @@ typedef struct global_State { | |||
638 | #define HOOK_PROFILE 0x80 | 638 | #define HOOK_PROFILE 0x80 |
639 | #define hook_active(g) ((g)->hookmask & HOOK_ACTIVE) | 639 | #define hook_active(g) ((g)->hookmask & HOOK_ACTIVE) |
640 | #define hook_enter(g) ((g)->hookmask |= HOOK_ACTIVE) | 640 | #define hook_enter(g) ((g)->hookmask |= HOOK_ACTIVE) |
641 | #define hook_entergc(g) ((g)->hookmask |= (HOOK_ACTIVE|HOOK_GC)) | 641 | #define hook_entergc(g) \ |
642 | ((g)->hookmask = ((g)->hookmask | (HOOK_ACTIVE|HOOK_GC)) & ~HOOK_PROFILE) | ||
642 | #define hook_vmevent(g) ((g)->hookmask |= (HOOK_ACTIVE|HOOK_VMEVENT)) | 643 | #define hook_vmevent(g) ((g)->hookmask |= (HOOK_ACTIVE|HOOK_VMEVENT)) |
643 | #define hook_leave(g) ((g)->hookmask &= ~HOOK_ACTIVE) | 644 | #define hook_leave(g) ((g)->hookmask &= ~HOOK_ACTIVE) |
644 | #define hook_save(g) ((g)->hookmask & ~HOOK_EVENTMASK) | 645 | #define hook_save(g) ((g)->hookmask & ~HOOK_EVENTMASK) |