Strings inside Lua are not fully aligned

Removed code to ensure that strings inside Lua (as returned by
'lua_tolstring') always start in fully aligned addresses.
Since version 5.3 the documentation does not ensure that.
This commit is contained in:
Roberto Ierusalimschy 2019-03-13 14:14:40 -03:00
parent dfebe439db
commit c5feac2b5e
2 changed files with 2 additions and 10 deletions

View File

@ -350,21 +350,13 @@ typedef struct TString {
} TString; } TString;
/*
** Ensures that address after this type is always fully aligned.
*/
typedef union UTString {
LUAI_MAXALIGN; /* ensures maximum alignment for strings */
TString tsv;
} UTString;
/* /*
** Get the actual string (array of bytes) from a 'TString'. ** Get the actual string (array of bytes) from a 'TString'.
** (Access to 'extra' ensures that value is really a 'TString'.) ** (Access to 'extra' ensures that value is really a 'TString'.)
*/ */
#define getstr(ts) \ #define getstr(ts) \
check_exp(sizeof((ts)->extra), cast_charp((ts)) + sizeof(UTString)) check_exp(sizeof((ts)->extra), cast_charp((ts)) + sizeof(TString))
/* get the actual string (array of bytes) from a Lua value */ /* get the actual string (array of bytes) from a Lua value */

View File

@ -19,7 +19,7 @@
#define MEMERRMSG "not enough memory" #define MEMERRMSG "not enough memory"
#define sizelstring(l) (sizeof(union UTString) + ((l) + 1) * sizeof(char)) #define sizelstring(l) (sizeof(TString) + ((l) + 1) * sizeof(char))
#define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \
(sizeof(s)/sizeof(char))-1)) (sizeof(s)/sizeof(char))-1))