mirror of
https://github.com/lua/lua
synced 2024-11-22 12:51:30 +03:00
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:
parent
dfebe439db
commit
c5feac2b5e
10
lobject.h
10
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 */
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user