aboutsummaryrefslogtreecommitdiff
path: root/lobject.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-02-21 13:28:12 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-02-21 13:28:12 -0300
commitc80c7a49fdbd5c6540bd49ef47925edd9eed8c99 (patch)
tree744b50b2390a27e6cc12f311747b2d868ca8dd05 /lobject.h
parent212095a601ee68e99065b553f7b6bc216056d82e (diff)
downloadlua-c80c7a49fdbd5c6540bd49ef47925edd9eed8c99.tar.gz
lua-c80c7a49fdbd5c6540bd49ef47925edd9eed8c99.tar.bz2
lua-c80c7a49fdbd5c6540bd49ef47925edd9eed8c99.zip
details (comments)
Diffstat (limited to 'lobject.h')
-rw-r--r--lobject.h45
1 files changed, 26 insertions, 19 deletions
diff --git a/lobject.h b/lobject.h
index 03396f11..5d6abdd1 100644
--- a/lobject.h
+++ b/lobject.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.h,v 2.133 2018/01/28 15:13:26 roberto Exp roberto $ 2** $Id: lobject.h,v 2.134 2018/02/20 16:52:50 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*/
@@ -88,12 +88,6 @@ struct GCObject {
88 88
89 89
90 90
91
92/*
93** Tagged Values. This is the basic representation of values in Lua,
94** an actual value plus a tag with its type.
95*/
96
97/* 91/*
98** Union of all Lua values 92** Union of all Lua values
99*/ 93*/
@@ -107,8 +101,12 @@ typedef union Value {
107} Value; 101} Value;
108 102
109 103
110#define TValuefields Value value_; lu_byte tt_ 104/*
105** Tagged Values. This is the basic representation of values in Lua:
106** an actual value plus a tag with its type.
107*/
111 108
109#define TValuefields Value value_; lu_byte tt_
112 110
113typedef struct TValue { 111typedef struct TValue {
114 TValuefields; 112 TValuefields;
@@ -301,14 +299,6 @@ typedef struct TValue {
301 299
302 300
303 301
304
305/*
306** {======================================================
307** types and prototypes
308** =======================================================
309*/
310
311
312typedef union StackValue { 302typedef union StackValue {
313 TValue val; 303 TValue val;
314} StackValue; 304} StackValue;
@@ -322,6 +312,12 @@ typedef StackValue *StkId; /* index to stack elements */
322 312
323 313
324/* 314/*
315** {==================================================================
316** Strings
317** ===================================================================
318*/
319
320/*
325** Header for string value; string bytes follow the end of this structure 321** Header for string value; string bytes follow the end of this structure
326** (aligned according to 'UTString'; see next). 322** (aligned according to 'UTString'; see next).
327*/ 323*/
@@ -363,6 +359,8 @@ typedef union UTString {
363/* get string length from 'TValue *o' */ 359/* get string length from 'TValue *o' */
364#define vslen(o) tsslen(tsvalue(o)) 360#define vslen(o) tsslen(tsvalue(o))
365 361
362/* }================================================================== */
363
366 364
367/* 365/*
368** {================================================================== 366** {==================================================================
@@ -404,7 +402,6 @@ typedef struct Udata {
404/* }================================================================== */ 402/* }================================================================== */
405 403
406 404
407
408/* 405/*
409** {================================================================== 406** {==================================================================
410** Prototypes 407** Prototypes
@@ -480,6 +477,11 @@ typedef struct Proto {
480/* }================================================================== */ 477/* }================================================================== */
481 478
482 479
480/*
481** {==================================================================
482** Closures
483** ===================================================================
484*/
483 485
484/* 486/*
485** Upvalues for Lua closures 487** Upvalues for Lua closures
@@ -529,14 +531,17 @@ typedef union Closure {
529 531
530#define getproto(o) (clLvalue(o)->p) 532#define getproto(o) (clLvalue(o)->p)
531 533
534/* }================================================================== */
535
532 536
533/* 537/*
538** {==================================================================
534** Tables 539** Tables
540** ===================================================================
535*/ 541*/
536 542
537
538/* 543/*
539** Nodes for Hash tables. A pack of two TValue's (key-value pairs) 544** Nodes for Hash tables: A pack of two TValue's (key-value pairs)
540** plus a 'next' field to link colliding entries. The distribution 545** plus a 'next' field to link colliding entries. The distribution
541** of the key's fields ('key_tt' and 'key_val') not forming a proper 546** of the key's fields ('key_tt' and 'key_val') not forming a proper
542** 'TValue' allows for a smaller size for 'Node' both in 4-byte 547** 'TValue' allows for a smaller size for 'Node' both in 4-byte
@@ -609,6 +614,8 @@ typedef struct Table {
609*/ 614*/
610#define setdeadkey(n) (keytt(n) = LUA_TTABLE, gckey(n) = NULL) 615#define setdeadkey(n) (keytt(n) = LUA_TTABLE, gckey(n) = NULL)
611 616
617/* }================================================================== */
618
612 619
613 620
614/* 621/*