diff options
author | Mike Pall <mike> | 2014-12-15 02:27:27 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2014-12-15 02:27:27 +0100 |
commit | 881f48f9808a950f8e046a3b299db0269506a87d (patch) | |
tree | 43584223f3b77d77af5a3515b3191c21fd012f01 /src/lj_err.c | |
parent | b93b624ad88a9455cb3f12db93a9c5e153ff8a62 (diff) | |
download | luajit-881f48f9808a950f8e046a3b299db0269506a87d.tar.gz luajit-881f48f9808a950f8e046a3b299db0269506a87d.tar.bz2 luajit-881f48f9808a950f8e046a3b299db0269506a87d.zip |
Cleanup of frame handling. No functional changes.
Diffstat (limited to 'src/lj_err.c')
-rw-r--r-- | src/lj_err.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 07afc580..dc2e26f3 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
@@ -114,9 +114,7 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) | |||
114 | frame = frame_prevl(frame); | 114 | frame = frame_prevl(frame); |
115 | break; | 115 | break; |
116 | case FRAME_C: /* C frame. */ | 116 | case FRAME_C: /* C frame. */ |
117 | #if LJ_HASFFI | ||
118 | unwind_c: | 117 | unwind_c: |
119 | #endif | ||
120 | #if LJ_UNWIND_EXT | 118 | #if LJ_UNWIND_EXT |
121 | if (errcode) { | 119 | if (errcode) { |
122 | L->base = frame_prevd(frame) + 1; | 120 | L->base = frame_prevd(frame) + 1; |
@@ -150,10 +148,8 @@ static void *err_unwind(lua_State *L, void *stopcf, int errcode) | |||
150 | } | 148 | } |
151 | return cf; | 149 | return cf; |
152 | case FRAME_CONT: /* Continuation frame. */ | 150 | case FRAME_CONT: /* Continuation frame. */ |
153 | #if LJ_HASFFI | 151 | if (frame_iscont_fficb(frame)) |
154 | if ((frame-1)->u32.lo == LJ_CONT_FFI_CALLBACK) | ||
155 | goto unwind_c; | 152 | goto unwind_c; |
156 | #endif | ||
157 | case FRAME_VARG: /* Vararg frame. */ | 153 | case FRAME_VARG: /* Vararg frame. */ |
158 | frame = frame_prevd(frame); | 154 | frame = frame_prevd(frame); |
159 | break; | 155 | break; |
@@ -522,10 +518,8 @@ static ptrdiff_t finderrfunc(lua_State *L) | |||
522 | frame = frame_prevd(frame); | 518 | frame = frame_prevd(frame); |
523 | break; | 519 | break; |
524 | case FRAME_CONT: | 520 | case FRAME_CONT: |
525 | #if LJ_HASFFI | 521 | if (frame_iscont_fficb(frame)) |
526 | if ((frame-1)->u32.lo == LJ_CONT_FFI_CALLBACK) | ||
527 | cf = cframe_prev(cf); | 522 | cf = cframe_prev(cf); |
528 | #endif | ||
529 | frame = frame_prevd(frame); | 523 | frame = frame_prevd(frame); |
530 | break; | 524 | break; |
531 | case FRAME_CP: | 525 | case FRAME_CP: |
@@ -652,13 +646,10 @@ LJ_NOINLINE void lj_err_callermsg(lua_State *L, const char *msg) | |||
652 | if (frame_islua(frame)) { | 646 | if (frame_islua(frame)) { |
653 | pframe = frame_prevl(frame); | 647 | pframe = frame_prevl(frame); |
654 | } else if (frame_iscont(frame)) { | 648 | } else if (frame_iscont(frame)) { |
655 | #if LJ_HASFFI | 649 | if (frame_iscont_fficb(frame)) { |
656 | if ((frame-1)->u32.lo == LJ_CONT_FFI_CALLBACK) { | ||
657 | pframe = frame; | 650 | pframe = frame; |
658 | frame = NULL; | 651 | frame = NULL; |
659 | } else | 652 | } else { |
660 | #endif | ||
661 | { | ||
662 | pframe = frame_prevd(frame); | 653 | pframe = frame_prevd(frame); |
663 | #if LJ_HASFFI | 654 | #if LJ_HASFFI |
664 | /* Remove frame for FFI metamethods. */ | 655 | /* Remove frame for FFI metamethods. */ |