Răsfoiți Sursa

Merge branch 'master' into v2.1

Mike Pall 12 ani în urmă
părinte
comite
f8cecffbbf
3 a modificat fișierele cu 17 adăugiri și 10 ștergeri
  1. 12 5
      src/lj_debug.c
  2. 1 1
      src/ljamalg.c
  3. 4 4
      src/xedkbuild.bat

+ 12 - 5
src/lj_debug.c

@@ -72,9 +72,18 @@ static BCPos debug_framepc(lua_State *L, GCfunc *fn, cTValue *nextframe)
       /* Lua function below errfunc/gc/hook: find cframe to get the PC. */
       void *cf = cframe_raw(L->cframe);
       TValue *f = L->base-1;
-      if (cf == NULL)
-	return NO_BCPOS;
-      while (f > nextframe) {
+      for (;;) {
+	if (cf == NULL)
+	  return NO_BCPOS;
+	while (cframe_nres(cf) < 0) {
+	  if (f >= restorestack(L, -cframe_nres(cf)))
+	    break;
+	  cf = cframe_raw(cframe_prev(cf));
+	  if (cf == NULL)
+	    return NO_BCPOS;
+	}
+	if (f < nextframe)
+	  break;
 	if (frame_islua(f)) {
 	  f = frame_prevl(f);
 	} else {
@@ -83,8 +92,6 @@ static BCPos debug_framepc(lua_State *L, GCfunc *fn, cTValue *nextframe)
 	  f = frame_prevd(f);
 	}
       }
-      if (cframe_prev(cf))
-	cf = cframe_raw(cframe_prev(cf));
       ins = cframe_pc(cf);
     }
   }

+ 1 - 1
src/ljamalg.c

@@ -6,7 +6,7 @@
 /*
 +--------------------------------------------------------------------------+
 | WARNING: Compiling the amalgamation needs a lot of virtual memory        |
-| (around 200 MB with GCC 4.x)! If you don't have enough physical memory   |
+| (around 300 MB with GCC 4.x)! If you don't have enough physical memory   |
 | your machine will start swapping to disk and the compile will not finish |
 | within a reasonable amount of time.                                      |
 | So either compile on a bigger machine or use the non-amalgamated build.  |

+ 4 - 4
src/xedkbuild.bat

@@ -54,13 +54,13 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c
 @if errorlevel 1 goto :BAD
 
 @rem ---- Cross compiler ----
-@set LJCOMPILE="%XEDK%\bin\win32\cl" /nologo /c /MT /O2 /W3 /GF /Gm- /GR- /GS- /Gy /openmp- /D_CRT_SECURE_NO_DEPRECATE /DNDEBUG /D_XBOX /D_LIB /DLUAJIT_USE_SYSMALLOC
-@set LJLIB="%XEDK%\bin\win32\lib" /nologo
-@set INCLUDE="%XEDK%\include\xbox"
+@set "LJCOMPILE=%XEDK%\bin\win32\cl /nologo /c /MT /O2 /W3 /GF /Gm- /GR- /GS- /Gy /openmp- /D_CRT_SECURE_NO_DEPRECATE /DNDEBUG /D_XBOX /D_LIB /DLUAJIT_USE_SYSMALLOC"
+@set "LJLIB=%XEDK%\bin\win32\lib /nologo"
+@set "INCLUDE=%XEDK%\include\xbox"
 
 @if "%1" neq "debug" goto :NODEBUG
 @shift
-@set LJCOMPILE="%LJCOMPILE%" /Zi
+@set "LJCOMPILE=%LJCOMPILE% /Zi"
 :NODEBUG
 @if "%1"=="amalg" goto :AMALG
 %LJCOMPILE% /DLUA_BUILD_AS_DLL lj_*.c lib_*.c