Просмотр исходного кода

update lua/src/lauxlib.c.
luaL_addlstring中,对字符串长度进行判断,大于100的则进行一次GC

Clong 5 лет назад
Родитель
Сommit
10ce4ac9e2
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      lua/src/lauxlib.c

+ 4 - 0
lua/src/lauxlib.c

@@ -558,6 +558,10 @@ LUALIB_API char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz) {
 
 LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) {
   if (l > 0) {  /* avoid 'memcpy' when 's' can be NULL */
+    if(l>100)
+	{
+      lua_gc(L, LUA_GCCOLLECT, 0);
+	}
     char *b = luaL_prepbuffsize(B, l);
     memcpy(b, s, l * sizeof(char));
     luaL_addsize(B, l);