avoid expression with side effect (in debug mode) inside 'sizeof'

This commit is contained in:
Roberto Ierusalimschy
2015-03-30 12:43:51 -03:00
parent 3a91274547
commit fcc6e1220e

View File

@@ -1,5 +1,5 @@
/* /*
** $Id: ldump.c,v 2.34 2014/11/02 19:19:04 roberto Exp roberto $ ** $Id: ldump.c,v 2.35 2015/01/16 16:54:37 roberto Exp roberto $
** save precompiled Lua chunks ** save precompiled Lua chunks
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@@ -75,13 +75,14 @@ static void DumpString (const TString *s, DumpState *D) {
DumpByte(0, D); DumpByte(0, D);
else { else {
size_t size = tsslen(s) + 1; /* include trailing '\0' */ size_t size = tsslen(s) + 1; /* include trailing '\0' */
const char *str = getstr(s);
if (size < 0xFF) if (size < 0xFF)
DumpByte(cast_int(size), D); DumpByte(cast_int(size), D);
else { else {
DumpByte(0xFF, D); DumpByte(0xFF, D);
DumpVar(size, D); DumpVar(size, D);
} }
DumpVector(getstr(s), size - 1, D); /* no need to save '\0' */ DumpVector(str, size - 1, D); /* no need to save '\0' */
} }
} }