diff options
Diffstat (limited to 'lobject.h')
| -rw-r--r-- | lobject.h | 9 |
1 files changed, 8 insertions, 1 deletions
| @@ -37,7 +37,8 @@ typedef union { | |||
| 37 | union Closure *cl; | 37 | union Closure *cl; |
| 38 | struct Table *h; | 38 | struct Table *h; |
| 39 | struct lua_TObject *v; | 39 | struct lua_TObject *v; |
| 40 | lua_Number n; /* LUA_TNUMBER */ | 40 | lua_Number n; |
| 41 | int b; | ||
| 41 | } Value; | 42 | } Value; |
| 42 | 43 | ||
| 43 | 44 | ||
| @@ -55,7 +56,10 @@ typedef struct lua_TObject { | |||
| 55 | #define clvalue(o) ((o)->value.cl) | 56 | #define clvalue(o) ((o)->value.cl) |
| 56 | #define hvalue(o) ((o)->value.h) | 57 | #define hvalue(o) ((o)->value.h) |
| 57 | #define vvalue(o) ((o)->value.v) | 58 | #define vvalue(o) ((o)->value.v) |
| 59 | #define bvalue(o) ((o)->value.b) | ||
| 58 | 60 | ||
| 61 | #define l_isfalse(o) (ttype(o) == LUA_TNIL || \ | ||
| 62 | (ttype(o) == LUA_TBOOLEAN && bvalue(o) == 0)) | ||
| 59 | 63 | ||
| 60 | /* Macros to set values */ | 64 | /* Macros to set values */ |
| 61 | #define setnvalue(obj,x) \ | 65 | #define setnvalue(obj,x) \ |
| @@ -63,6 +67,9 @@ typedef struct lua_TObject { | |||
| 63 | 67 | ||
| 64 | #define chgnvalue(obj,x) ((obj)->value.n=(x)) | 68 | #define chgnvalue(obj,x) ((obj)->value.n=(x)) |
| 65 | 69 | ||
| 70 | #define setbvalue(obj,x) \ | ||
| 71 | { TObject *_o=(obj); _o->tt=LUA_TBOOLEAN; _o->value.b=(x); } | ||
| 72 | |||
| 66 | #define setsvalue(obj,x) \ | 73 | #define setsvalue(obj,x) \ |
| 67 | { TObject *_o=(obj); _o->tt=LUA_TSTRING; _o->value.ts=(x); } | 74 | { TObject *_o=(obj); _o->tt=LUA_TSTRING; _o->value.ts=(x); } |
| 68 | 75 | ||
