From 03d8a9bf0d8d9c149c0c2c0ae63732a8bfa512fd Mon Sep 17 00:00:00 2001
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 9 Feb 2001 18:29:33 -0200
Subject: details

---
 llimits.h | 4 ++--
 lstring.c | 7 +++----
 ltests.c  | 6 ++++--
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/llimits.h b/llimits.h
index e52f9d58..37bf85dc 100644
--- a/llimits.h
+++ b/llimits.h
@@ -1,5 +1,5 @@
 /*
-** $Id: llimits.h,v 1.20 2000/11/24 17:39:56 roberto Exp roberto $
+** $Id: llimits.h,v 1.21 2000/12/04 18:33:40 roberto Exp roberto $
 ** Limits, basic types, and some other "installation-dependent" definitions
 ** See Copyright Notice in lua.h
 */
@@ -90,7 +90,7 @@ typedef luint32 Instruction;
 ** (accordingly, size_u will be 10, and size_a will be 5)
 */
 #define SIZE_INSTRUCTION        32
-#define SIZE_B          9
+#define SIZE_B          8
 
 #define SIZE_OP         6
 #define SIZE_U          (SIZE_INSTRUCTION-SIZE_OP)
diff --git a/lstring.c b/lstring.c
index f99e4c37..c8e2d608 100644
--- a/lstring.c
+++ b/lstring.c
@@ -1,5 +1,5 @@
 /*
-** $Id: lstring.c,v 1.56 2001/02/09 19:53:16 roberto Exp roberto $
+** $Id: lstring.c,v 1.57 2001/02/09 20:22:29 roberto Exp roberto $
 ** String table (keeps all strings handled by Lua)
 ** See Copyright Notice in lua.h
 */
@@ -89,13 +89,12 @@ TString *luaS_newlstr (lua_State *L, const char *str, size_t l) {
 
 
 TString *luaS_newudata (lua_State *L, size_t s, void *udata) {
-  union L_UTString *uts = (union L_UTString *)luaM_malloc(L, sizeudata(s));
-  TString *ts = &uts->ts;
+  TString *ts = (TString *)luaM_malloc(L, sizeudata(s));
   ts->marked = 0;
   ts->nexthash = NULL;
   ts->len = s;
   ts->u.d.tag = 0;
-  ts->u.d.value = (s > 0) ? uts+1 : udata;
+  ts->u.d.value = (s > 0) ? getstr(ts) : udata;
   /* insert it on table */
   newentry(L, &G(L)->udt, ts, lmod(IntPoint(ts->u.d.value), G(L)->udt.size));
   return ts;
diff --git a/ltests.c b/ltests.c
index 7eb03939..4aa95d00 100644
--- a/ltests.c
+++ b/ltests.c
@@ -1,5 +1,5 @@
 /*
-** $Id: ltests.c,v 1.65 2001/02/09 19:53:16 roberto Exp roberto $
+** $Id: ltests.c,v 1.66 2001/02/09 20:22:29 roberto Exp roberto $
 ** Internal Module for Debugging of the Lua Implementation
 ** See Copyright Notice in lua.h
 */
@@ -356,7 +356,9 @@ static int newuserdata (lua_State *L) {
     return 2;
   }
   else {
-    lua_newuserdata(L, luaL_check_int(L, 1));
+    size_t size = luaL_check_int(L, 1);
+    char *p = (char *)lua_newuserdata(L, size);
+    while (size--) *p++ = '\0';
     return 1;
   }
 }
-- 
cgit v1.2.3-55-g6feb