diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-08-23 15:14:03 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-08-23 15:14:03 -0300 |
commit | c815c2f0eb7a4ac01d4f664f3db44c199ee4e211 (patch) | |
tree | 63cdeea69af0df9ff82303d05c517068eb54e56e /lobject.h | |
parent | ab6a94952215b1f66436d8eeebded1dad9fa5409 (diff) | |
parent | 9363a8b9901a5643c9da061ea8dda8a86cdc7ef1 (diff) | |
download | lua-c815c2f0eb7a4ac01d4f664f3db44c199ee4e211.tar.gz lua-c815c2f0eb7a4ac01d4f664f3db44c199ee4e211.tar.bz2 lua-c815c2f0eb7a4ac01d4f664f3db44c199ee4e211.zip |
Merge branch 'master' into nextversion
Diffstat (limited to 'lobject.h')
-rw-r--r-- | lobject.h | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -386,7 +386,7 @@ typedef struct GCObject { | |||
386 | typedef struct TString { | 386 | typedef struct TString { |
387 | CommonHeader; | 387 | CommonHeader; |
388 | lu_byte extra; /* reserved words for short strings; "has hash" for longs */ | 388 | lu_byte extra; /* reserved words for short strings; "has hash" for longs */ |
389 | lu_byte shrlen; /* length for short strings */ | 389 | lu_byte shrlen; /* length for short strings, 0xFF for long strings */ |
390 | unsigned int hash; | 390 | unsigned int hash; |
391 | union { | 391 | union { |
392 | size_t lnglen; /* length for long strings */ | 392 | size_t lnglen; /* length for long strings */ |
@@ -398,19 +398,17 @@ typedef struct TString { | |||
398 | 398 | ||
399 | 399 | ||
400 | /* | 400 | /* |
401 | ** Get the actual string (array of bytes) from a 'TString'. | 401 | ** Get the actual string (array of bytes) from a 'TString'. (Generic |
402 | ** version and specialized versions for long and short strings.) | ||
402 | */ | 403 | */ |
403 | #define getstr(ts) ((ts)->contents) | 404 | #define getstr(ts) ((ts)->contents) |
405 | #define getlngstr(ts) check_exp((ts)->shrlen == 0xFF, (ts)->contents) | ||
406 | #define getshrstr(ts) check_exp((ts)->shrlen != 0xFF, (ts)->contents) | ||
404 | 407 | ||
405 | 408 | ||
406 | /* get the actual string (array of bytes) from a Lua value */ | ||
407 | #define svalue(o) getstr(tsvalue(o)) | ||
408 | |||
409 | /* get string length from 'TString *s' */ | 409 | /* get string length from 'TString *s' */ |
410 | #define tsslen(s) ((s)->tt == LUA_VSHRSTR ? (s)->shrlen : (s)->u.lnglen) | 410 | #define tsslen(s) \ |
411 | 411 | ((s)->shrlen != 0xFF ? (s)->shrlen : (s)->u.lnglen) | |
412 | /* get string length from 'TValue *o' */ | ||
413 | #define vslen(o) tsslen(tsvalue(o)) | ||
414 | 412 | ||
415 | /* }================================================================== */ | 413 | /* }================================================================== */ |
416 | 414 | ||