diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-10-30 14:25:59 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-10-30 14:25:59 -0300 |
| commit | 43c8e5bded052801f54a7439d18933b83570eb82 (patch) | |
| tree | 97f6d1e020110e14c798537c7bbb1f90feed4044 /lobject.h | |
| parent | b8b709b6d40c5c18d9b8ef33bb50afc55f048ab8 (diff) | |
| download | lua-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.h | 5 |
1 files changed, 4 insertions, 1 deletions
| @@ -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 | ||
| 739 | typedef struct ArrayCell ArrayCell; | ||
| 740 | |||
| 741 | |||
| 739 | typedef struct Table { | 742 | typedef 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; |
