aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-06-01 17:24:05 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-06-01 17:24:05 -0300
commit4bb30f461b146e1d189ee301472953e948699acf (patch)
tree6672a04861449826d9c05af1ead524c4a7da5937
parentdad85e41311646e37d995d677156d6b5daeff329 (diff)
downloadlua-4bb30f461b146e1d189ee301472953e948699acf.tar.gz
lua-4bb30f461b146e1d189ee301472953e948699acf.tar.bz2
lua-4bb30f461b146e1d189ee301472953e948699acf.zip
when assigning to a 'TValue', better assign only exact fields,
to allow us to put stuff after the 'TValuefields' if needed
-rw-r--r--lobject.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/lobject.h b/lobject.h
index f8a73a14..2bef659a 100644
--- a/lobject.h
+++ b/lobject.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.h,v 2.119 2017/04/24 18:06:12 roberto Exp roberto $ 2** $Id: lobject.h,v 2.120 2017/04/30 20:43:26 roberto Exp roberto $
3** Type definitions for Lua objects 3** Type definitions for Lua objects
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -108,7 +108,7 @@ typedef union Value {
108} Value; 108} Value;
109 109
110 110
111#define TValuefields Value value_; int tt_ 111#define TValuefields Value value_; lu_byte tt_
112 112
113 113
114typedef struct lua_TValue { 114typedef struct lua_TValue {
@@ -258,7 +258,8 @@ typedef struct lua_TValue {
258 258
259 259
260#define setobj(L,obj1,obj2) \ 260#define setobj(L,obj1,obj2) \
261 { TValue *io1=(obj1); *io1 = *(obj2); \ 261 { TValue *io1=(obj1); const TValue *io2=(obj2); \
262 io1->value_ = io2->value_; io1->tt_ = io2->tt_; \
262 (void)L; checkliveness(L,io1); } 263 (void)L; checkliveness(L,io1); }
263 264
264 265
@@ -278,9 +279,8 @@ typedef struct lua_TValue {
278/* to new object */ 279/* to new object */
279#define setobj2n setobj 280#define setobj2n setobj
280#define setsvalue2n setsvalue 281#define setsvalue2n setsvalue
281 282/* to table */
282/* to table (define it as an expression to be used in macros) */ 283#define setobj2t setobj
283#define setobj2t(L,o1,o2) ((void)L, *(o1)=*(o2), checkliveness(L,(o1)))
284 284
285 285
286 286