aboutsummaryrefslogtreecommitdiff
path: root/lobject.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-10-30 14:25:59 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2023-10-30 14:25:59 -0300
commit43c8e5bded052801f54a7439d18933b83570eb82 (patch)
tree97f6d1e020110e14c798537c7bbb1f90feed4044 /lobject.h
parentb8b709b6d40c5c18d9b8ef33bb50afc55f048ab8 (diff)
downloadlua-43c8e5bded052801f54a7439d18933b83570eb82.tar.gz
lua-43c8e5bded052801f54a7439d18933b83570eb82.tar.bz2
lua-43c8e5bded052801f54a7439d18933b83570eb82.zip
Full abstraction for representation of array values
Diffstat (limited to 'lobject.h')
-rw-r--r--lobject.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/lobject.h b/lobject.h
index 556608e4..e91bb0f8 100644
--- a/lobject.h
+++ b/lobject.h
@@ -736,12 +736,15 @@ typedef union Node {
736#define setnorealasize(t) ((t)->flags |= BITRAS) 736#define setnorealasize(t) ((t)->flags |= BITRAS)
737 737
738 738
739typedef struct ArrayCell ArrayCell;
740
741
739typedef struct Table { 742typedef struct Table {
740 CommonHeader; 743 CommonHeader;
741 lu_byte flags; /* 1<<p means tagmethod(p) is not present */ 744 lu_byte flags; /* 1<<p means tagmethod(p) is not present */
742 lu_byte lsizenode; /* log2 of size of 'node' array */ 745 lu_byte lsizenode; /* log2 of size of 'node' array */
743 unsigned int alimit; /* "limit" of 'array' array */ 746 unsigned int alimit; /* "limit" of 'array' array */
744 TValue *array; /* array part */ 747 ArrayCell *array; /* array part */
745 Node *node; 748 Node *node;
746 Node *lastfree; /* any free position is before this position */ 749 Node *lastfree; /* any free position is before this position */
747 struct Table *metatable; 750 struct Table *metatable;