commit c5feac2b5edf86aa9bdc4b8acd5380f2fe9e197f
parent dfebe439db76b5c9fd9b4e3877857e2449c8ad87
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 13 Mar 2019 14:14:13 -0300
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.
Diffstat:
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/lobject.h b/lobject.h
@@ -350,21 +350,13 @@ typedef struct 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'.
** (Access to 'extra' ensures that value is really a 'TString'.)
*/
#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 */
diff --git a/lstring.h b/lstring.h
@@ -19,7 +19,7 @@
#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, \
(sizeof(s)/sizeof(char))-1))