浏览代码

fix:luavm内存使用不严谨

alienwalker 4 年之前
父节点
当前提交
3ffcd1b412
共有 1 个文件被更改,包括 13 次插入10 次删除
  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;
     	}