Browse Source

Display caller location in errors from metamethods.

Mike Pall 14 years ago
parent
commit
6290d6f5d0
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/lj_err.c

+ 2 - 1
src/lj_err.c

@@ -904,7 +904,8 @@ LJ_NOINLINE void lj_err_optype_call(lua_State *L, TValue *o)
 LJ_NOINLINE void lj_err_callermsg(lua_State *L, const char *msg)
 LJ_NOINLINE void lj_err_callermsg(lua_State *L, const char *msg)
 {
 {
   cTValue *frame = L->base-1;
   cTValue *frame = L->base-1;
-  cTValue *pframe = frame_islua(frame) ? frame_prevl(frame) : NULL;
+  cTValue *pframe = frame_islua(frame) ? frame_prevl(frame) :
+		    frame_iscont(frame) ? frame_prevd(frame) : NULL;
   err_loc(L, msg, pframe, frame);
   err_loc(L, msg, pframe, frame);
   lj_err_run(L);
   lj_err_run(L);
 }
 }