Roberto Ierusalimschy 25 سال پیش
والد
کامیت
36e1390631
5فایلهای تغییر یافته به همراه24 افزوده شده و 20 حذف شده
  1. 12 1
      llimits.h
  2. 3 5
      lobject.c
  3. 6 6
      lobject.h
  4. 1 6
      lstate.c
  5. 2 2
      ltable.c

+ 12 - 1
llimits.h

@@ -1,5 +1,5 @@
 /*
-** $Id: llimits.h,v 1.2 2000/03/24 19:49:23 roberto Exp roberto $
+** $Id: llimits.h,v 1.3 2000/03/27 20:08:33 roberto Exp roberto $
 ** Limits, basic types, and some other "instalation-dependent" definitions
 ** See Copyright Notice in lua.h
 */
@@ -43,6 +43,13 @@ typedef LUA_NUM_TYPE Number;
 #define MINPOWER2       4       /* minimum size for "growing" vectors */
 
 
+
+#ifndef DEFAULT_STACK_SIZE
+#define DEFAULT_STACK_SIZE      1024
+#endif
+
+
+
 /*
 ** type for virtual-machine instructions
 ** must be an unsigned with 4 bytes (see details in lopcodes.h)
@@ -151,7 +158,11 @@ typedef unsigned long Instruction;
 
 
 /* number of list items to accumulate before a SETLIST instruction */
+#define LFIELDS_PER_FLUSH	64
+#if LFIELDS_PER_FLUSH>(MAXSTACK/4)
+#undef LFIELDS_PER_FLUSH
 #define LFIELDS_PER_FLUSH	(MAXSTACK/4)
+#endif
 
 /* number of record items to accumulate before a SETMAP instruction */
 /* (each item counts 2 elements on the stack: an index and a value) */

+ 3 - 5
lobject.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lobject.c,v 1.34 2000/03/27 20:10:21 roberto Exp roberto $
+** $Id: lobject.c,v 1.35 2000/03/29 20:19:20 roberto Exp roberto $
 ** Some generic functions over Lua objects
 ** See Copyright Notice in lua.h
 */
@@ -42,11 +42,9 @@ int luaO_equalval (const TObject *t1, const TObject *t2) {
       return avalue(t1) == avalue(t2);
     case TAG_CCLOSURE: case TAG_LCLOSURE:
       return clvalue(t1) == clvalue(t2);
-    case TAG_NIL:
-      return 1;
     default:
-     LUA_INTERNALERROR(L, "invalid type");
-     return 0; /* UNREACHABLE */
+      LUA_ASSERT(L, ttype(t1) == TAG_NIL, "invalid type");
+      return 1; /* TAG_NIL */
   }
 }
 

+ 6 - 6
lobject.h

@@ -1,5 +1,5 @@
 /*
-** $Id: lobject.h,v 1.57 2000/03/29 20:19:20 roberto Exp roberto $
+** $Id: lobject.h,v 1.58 2000/03/30 20:55:50 roberto Exp roberto $
 ** Type definitions for Lua objects
 ** See Copyright Notice in lua.h
 */
@@ -15,8 +15,8 @@
 #ifdef DEBUG
 #undef NDEBUG
 #include <assert.h>
-#define LUA_INTERNALERROR(L,s)	assert(0)
-#define LUA_ASSERT(L,c,s)	assert(c)
+#define LUA_INTERNALERROR(L,s)	assert(((void)s,0))
+#define LUA_ASSERT(L,c,s)	assert(((void)s,(c)))
 #else
 #define LUA_INTERNALERROR(L,s)	/* empty */
 #define LUA_ASSERT(L,c,s)	/* empty */
@@ -24,10 +24,10 @@
 
 
 #ifdef DEBUG
-/* to avoid warnings and make sure is is really unused */
-#define UNUSED(x)	(x=0, (void)x)
+/* to avoid warnings, and make sure value is really unused */
+#define UNUSED(x)	(x=0, (void)(x))
 #else
-#define UNUSED(x)	(void)x		/* to avoid warnings */
+#define UNUSED(x)	((void)(x))	/* to avoid warnings */
 #endif
 
 

+ 1 - 6
lstate.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lstate.c,v 1.23 1999/12/21 18:04:41 roberto Exp roberto $
+** $Id: lstate.c,v 1.24 2000/01/13 16:30:47 roberto Exp roberto $
 ** Global State
 ** See Copyright Notice in lua.h
 */
@@ -21,11 +21,6 @@
 #include "ltm.h"
 
 
-#ifndef DEFAULT_STACK_SIZE
-#define DEFAULT_STACK_SIZE      1024
-#endif
-
-
 lua_State *lua_state = NULL;
 
 

+ 2 - 2
ltable.c

@@ -1,5 +1,5 @@
 /*
-** $Id: ltable.c,v 1.37 2000/03/27 20:10:21 roberto Exp roberto $
+** $Id: ltable.c,v 1.38 2000/03/29 20:19:20 roberto Exp roberto $
 ** Lua tables (hash)
 ** See Copyright Notice in lua.h
 */
@@ -198,7 +198,7 @@ void luaH_set (lua_State *L, Hash *t, const TObject *key, const TObject *val) {
   mp->key = *key;
   mp->val = *val;
   for (;;) {  /* check free places */
-    if (ttype(&(t->firstfree)->key) == TAG_NIL)
+    if (ttype(&t->firstfree->key) == TAG_NIL)
       return;  /* OK; table still has a free place */
     else if (t->firstfree == t->node) break;  /* cannot decrement from here */
     else (t->firstfree)--;