mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Replace divisions with simpler code.
This commit is contained in:
parent
cf3a263044
commit
c0efa6f00e
@ -668,19 +668,22 @@ static void addquoted(lua_State *L, luaL_Buffer *b, int arg)
|
|||||||
const char *s = strdata(str);
|
const char *s = strdata(str);
|
||||||
luaL_addchar(b, '"');
|
luaL_addchar(b, '"');
|
||||||
while (len--) {
|
while (len--) {
|
||||||
if (*s == '"' || *s == '\\' || *s == '\n') {
|
uint32_t c = uchar(*s);
|
||||||
|
if (c == '"' || c == '\\' || c == '\n') {
|
||||||
luaL_addchar(b, '\\');
|
luaL_addchar(b, '\\');
|
||||||
luaL_addchar(b, *s);
|
} else if (lj_char_iscntrl(c)) { /* This can only be 0-31 or 127. */
|
||||||
} else if (lj_char_iscntrl(uchar(*s))) {
|
uint32_t d;
|
||||||
uint32_t c1, c2, c3;
|
|
||||||
luaL_addchar(b, '\\');
|
luaL_addchar(b, '\\');
|
||||||
c1 = uchar(*s); c3 = c1 % 10; c1 /= 10; c2 = c1 % 10; c1 /= 10;
|
if (c >= 100 || lj_char_isdigit(uchar(s[1]))) {
|
||||||
if (c1 + lj_char_isdigit(uchar(s[1]))) luaL_addchar(b, '0' + c1);
|
luaL_addchar(b, '0'+(c >= 100)); if (c >= 100) c -= 100;
|
||||||
if (c2 + (c1 + lj_char_isdigit(uchar(s[1])))) luaL_addchar(b, '0' + c2);
|
goto tens;
|
||||||
luaL_addchar(b, '0' + c3);
|
} else if (c >= 10) {
|
||||||
} else {
|
tens:
|
||||||
luaL_addchar(b, *s);
|
d = (c * 205) >> 11; c -= d * 10; luaL_addchar(b, '0'+d);
|
||||||
|
}
|
||||||
|
c += '0';
|
||||||
}
|
}
|
||||||
|
luaL_addchar(b, c);
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
luaL_addchar(b, '"');
|
luaL_addchar(b, '"');
|
||||||
|
@ -324,7 +324,7 @@ static void bcwrite_proto(BCWriteCtx *ctx, GCproto *pt)
|
|||||||
/* Pass buffer to writer function. */
|
/* Pass buffer to writer function. */
|
||||||
if (ctx->status == 0) {
|
if (ctx->status == 0) {
|
||||||
MSize n = ctx->sb.n - 5;
|
MSize n = ctx->sb.n - 5;
|
||||||
MSize nn = 1 + lj_fls(n)/7;
|
MSize nn = (lj_fls(n)+8)*9 >> 6;
|
||||||
ctx->sb.n = 5 - nn;
|
ctx->sb.n = 5 - nn;
|
||||||
bcwrite_uleb128(ctx, n); /* Fill in final size. */
|
bcwrite_uleb128(ctx, n); /* Fill in final size. */
|
||||||
lua_assert(ctx->sb.n == 5);
|
lua_assert(ctx->sb.n == 5);
|
||||||
|
Loading…
Reference in New Issue
Block a user