Ver código fonte

fix:luavm内存使用不严谨

alienwalker 4 anos atrás
pai
commit
3ffcd1b412
1 arquivos alterados com 13 adições e 10 exclusões
  1. 13 10
      application/src/luat_malloc_air105.c

+ 13 - 10
application/src/luat_malloc_air105.c

@@ -104,17 +104,20 @@ void* luat_heap_alloc(void *ud, void *ptr, size_t osize, size_t nsize) {
     	void* ptmp = luat_bget(&luavm_pool, nsize);
     	if (ptmp)
     	{
-    		if (osize > nsize)
+    		if (ptr)
     		{
-    			memcpy(ptmp, ptr, nsize);
-    		}
-    		else
-    		{
-    			memcpy(ptmp, ptr, osize);
-    		}
-    		if (((uint32_t)ptr & __SRAM_BASE_ADDR__) == __SRAM_BASE_ADDR__)
-    		{
-    			luat_brel(&luavm_pool, ptr);
+        		if (osize > nsize)
+        		{
+        			memcpy(ptmp, ptr, nsize);
+        		}
+        		else
+        		{
+        			memcpy(ptmp, ptr, osize);
+        		}
+        		if (((uint32_t)ptr & __SRAM_BASE_ADDR__) == __SRAM_BASE_ADDR__)
+        		{
+        			luat_brel(&luavm_pool, ptr);
+        		}
     		}
     		return ptmp;
     	}