Skip to content

Commit

Permalink
1、修复Function对象invoke时导致脚本终止执行问题。
Browse files Browse the repository at this point in the history
2、修复iOS中Object释放时崩溃问题。
3、优化内存使用,修复内存泄露问题。
  • Loading branch information
vimfung committed Nov 4, 2016
1 parent 120350c commit 0e34275
Show file tree
Hide file tree
Showing 25 changed files with 185 additions and 101 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ public void onClick(View v) {
}

_luaContext.evalScript("local person = Person.create(); person:setName('vimfung'); print(person:name()); person:speak(); person:walk();");

}
});
}
Expand Down
Binary file not shown.
Binary file not shown.
Binary file modified Sample/Android/app/src/main/jniLibs/armeabi/libLuaScriptCore.so
Binary file not shown.
Binary file modified Sample/Android/app/src/main/jniLibs/mips/libLuaScriptCore.so
Binary file not shown.
Binary file modified Sample/Android/app/src/main/jniLibs/mips64/libLuaScriptCore.so
Binary file not shown.
Binary file modified Sample/Android/app/src/main/jniLibs/x86/libLuaScriptCore.so
Binary file not shown.
Binary file modified Sample/Android/app/src/main/jniLibs/x86_64/libLuaScriptCore.so
Binary file not shown.
1 change: 1 addition & 0 deletions Sample/iOS_OSX/Common/LSCTPerson.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

#import "LSCTPerson.h"
#import "LSCValue.h"
#import "LSCFunction.h"

@interface LSCTPerson ()

Expand Down
4 changes: 4 additions & 0 deletions Sample/iOS_OSX/LuaScript/test.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
local person = LSCTPerson.create();
person:setName('vimfung');
person:walk();
person:speak();
4 changes: 2 additions & 2 deletions Sample/iOS_OSX/Sample-OSX/ViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#import "ViewController.h"
#import "LogModule.h"
#import "LSCTPerson.h"
#import "LSCTColor.h"

@interface ViewController ()

Expand Down Expand Up @@ -150,7 +149,8 @@ - (IBAction)registerClassClickedHandler:(id)sender
[self.context registerModuleWithClass:[LSCTPerson class]];
}

[self.context evalScriptFromString:@"local person = LSCTPerson.create();person:setName('vimfung');person:walk();person:speak();person=nil;collectgarbage();"];
[self.context evalScriptFromFile:[[NSBundle mainBundle] pathForResource:@"test"
ofType:@"lua"]];
}

@end
3 changes: 2 additions & 1 deletion Sample/iOS_OSX/Sample-iOS/ViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ - (IBAction)registerClassClickedHandler:(id)sender
[self.context registerModuleWithClass:[LSCTPerson class]];
}

[self.context evalScriptFromString:@"local person = LSCTPerson.create();person:setName('vimfung');person:walk();person:speak();person=nil;collectgarbage();"];
[self.context evalScriptFromFile:[[NSBundle mainBundle] pathForResource:@"test"
ofType:@"lua"]];
}

@end
80 changes: 43 additions & 37 deletions Sample/iOS_OSX/Sample.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
objects = {

/* Begin PBXBuildFile section */
7C210E041DCB5FD3000838F9 /* test.lua in Resources */ = {isa = PBXBuildFile; fileRef = 7C210E031DCB5FD3000838F9 /* test.lua */; };
7C210E051DCB5FD3000838F9 /* test.lua in Resources */ = {isa = PBXBuildFile; fileRef = 7C210E031DCB5FD3000838F9 /* test.lua */; };
7C5A61811D6AE2A3007D4308 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C5A61801D6AE2A3007D4308 /* AppDelegate.m */; };
7C5A61841D6AE2A3007D4308 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C5A61831D6AE2A3007D4308 /* main.m */; };
7C5A61871D6AE2A3007D4308 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C5A61861D6AE2A3007D4308 /* ViewController.m */; };
Expand All @@ -18,8 +20,8 @@
7C6B12811D6AFD1400489D9E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7C6B12781D6AFD1400489D9E /* Main.storyboard */; };
7C6B12831D6AFD1400489D9E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C6B127B1D6AFD1400489D9E /* main.m */; };
7C6B12841D6AFD1400489D9E /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C6B127D1D6AFD1400489D9E /* ViewController.m */; };
7C75B1601DCC63D100112E35 /* libLuaScriptCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C75B15F1DCC63D100112E35 /* libLuaScriptCore.a */; };
7C96366F1DC9BF8F00E423CF /* libLuaScriptCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C96366E1DC9BF8F00E423CF /* libLuaScriptCore.a */; };
7C96367B1DC9C11000E423CF /* libLuaScriptCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C96367A1DC9C11000E423CF /* libLuaScriptCore.a */; };
7CE625121D93B3AA007533D7 /* dkjson.lua in Resources */ = {isa = PBXBuildFile; fileRef = 7CE6250F1D93B3AA007533D7 /* dkjson.lua */; };
7CE625131D93B3AA007533D7 /* dkjson.lua in Resources */ = {isa = PBXBuildFile; fileRef = 7CE6250F1D93B3AA007533D7 /* dkjson.lua */; };
7CE625141D93B3AA007533D7 /* main.lua in Resources */ = {isa = PBXBuildFile; fileRef = 7CE625101D93B3AA007533D7 /* main.lua */; };
Expand All @@ -33,6 +35,7 @@
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
7C210E031DCB5FD3000838F9 /* test.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = test.lua; sourceTree = "<group>"; };
7C5A617D1D6AE2A3007D4308 /* Sample-OSX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Sample-OSX.app"; sourceTree = BUILT_PRODUCTS_DIR; };
7C5A617F1D6AE2A3007D4308 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
7C5A61801D6AE2A3007D4308 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
Expand All @@ -51,6 +54,15 @@
7C6B127B1D6AFD1400489D9E /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
7C6B127C1D6AFD1400489D9E /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
7C6B127D1D6AFD1400489D9E /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
7C75B1571DCC63D100112E35 /* LSCContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCContext.h; sourceTree = "<group>"; };
7C75B1581DCC63D100112E35 /* LSCFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCFunction.h; sourceTree = "<group>"; };
7C75B1591DCC63D100112E35 /* LSCModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCModule.h; sourceTree = "<group>"; };
7C75B15A1DCC63D100112E35 /* LSCObjectClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCObjectClass.h; sourceTree = "<group>"; };
7C75B15B1DCC63D100112E35 /* LSCPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCPointer.h; sourceTree = "<group>"; };
7C75B15C1DCC63D100112E35 /* LSCTypeDefinied.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCTypeDefinied.h; sourceTree = "<group>"; };
7C75B15D1DCC63D100112E35 /* LSCValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCValue.h; sourceTree = "<group>"; };
7C75B15E1DCC63D100112E35 /* LuaScriptCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuaScriptCore.h; sourceTree = "<group>"; };
7C75B15F1DCC63D100112E35 /* libLuaScriptCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLuaScriptCore.a; sourceTree = "<group>"; };
7C8C2DE01D38C345009345EB /* Sample-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Sample-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
7C9636661DC9BF8F00E423CF /* LSCContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCContext.h; sourceTree = "<group>"; };
7C9636671DC9BF8F00E423CF /* LSCFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCFunction.h; sourceTree = "<group>"; };
Expand All @@ -61,15 +73,6 @@
7C96366C1DC9BF8F00E423CF /* LSCValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCValue.h; sourceTree = "<group>"; };
7C96366D1DC9BF8F00E423CF /* LuaScriptCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuaScriptCore.h; sourceTree = "<group>"; };
7C96366E1DC9BF8F00E423CF /* libLuaScriptCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLuaScriptCore.a; sourceTree = "<group>"; };
7C9636721DC9C11000E423CF /* LSCContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCContext.h; sourceTree = "<group>"; };
7C9636731DC9C11000E423CF /* LSCFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCFunction.h; sourceTree = "<group>"; };
7C9636741DC9C11000E423CF /* LSCModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCModule.h; sourceTree = "<group>"; };
7C9636751DC9C11000E423CF /* LSCObjectClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCObjectClass.h; sourceTree = "<group>"; };
7C9636761DC9C11000E423CF /* LSCPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCPointer.h; sourceTree = "<group>"; };
7C9636771DC9C11000E423CF /* LSCTypeDefinied.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCTypeDefinied.h; sourceTree = "<group>"; };
7C9636781DC9C11000E423CF /* LSCValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LSCValue.h; sourceTree = "<group>"; };
7C9636791DC9C11000E423CF /* LuaScriptCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LuaScriptCore.h; sourceTree = "<group>"; };
7C96367A1DC9C11000E423CF /* libLuaScriptCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLuaScriptCore.a; sourceTree = "<group>"; };
7CE6250F1D93B3AA007533D7 /* dkjson.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dkjson.lua; sourceTree = "<group>"; };
7CE625101D93B3AA007533D7 /* main.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.lua; sourceTree = "<group>"; };
7CE625111D93B3AA007533D7 /* todo.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = todo.lua; sourceTree = "<group>"; };
Expand All @@ -92,7 +95,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
7C96367B1DC9C11000E423CF /* libLuaScriptCore.a in Frameworks */,
7C75B1601DCC63D100112E35 /* libLuaScriptCore.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -126,7 +129,7 @@
7C6B12721D6AFD1400489D9E /* Sample-iOS */ = {
isa = PBXGroup;
children = (
7C9636701DC9C11000E423CF /* LuaScriptCore */,
7C75B1551DCC63D100112E35 /* LuaScriptCore */,
7C6B12731D6AFD1400489D9E /* AppDelegate.h */,
7C6B12741D6AFD1400489D9E /* AppDelegate.m */,
7C6B12751D6AFD1400489D9E /* Assets.xcassets */,
Expand All @@ -140,6 +143,31 @@
path = "Sample-iOS";
sourceTree = "<group>";
};
7C75B1551DCC63D100112E35 /* LuaScriptCore */ = {
isa = PBXGroup;
children = (
7C75B1561DCC63D100112E35 /* include */,
7C75B15F1DCC63D100112E35 /* libLuaScriptCore.a */,
);
name = LuaScriptCore;
path = ../../../Release/iOS;
sourceTree = "<group>";
};
7C75B1561DCC63D100112E35 /* include */ = {
isa = PBXGroup;
children = (
7C75B1571DCC63D100112E35 /* LSCContext.h */,
7C75B1581DCC63D100112E35 /* LSCFunction.h */,
7C75B1591DCC63D100112E35 /* LSCModule.h */,
7C75B15A1DCC63D100112E35 /* LSCObjectClass.h */,
7C75B15B1DCC63D100112E35 /* LSCPointer.h */,
7C75B15C1DCC63D100112E35 /* LSCTypeDefinied.h */,
7C75B15D1DCC63D100112E35 /* LSCValue.h */,
7C75B15E1DCC63D100112E35 /* LuaScriptCore.h */,
);
path = include;
sourceTree = "<group>";
};
7C8C2DD71D38C345009345EB = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -185,37 +213,13 @@
path = include;
sourceTree = "<group>";
};
7C9636701DC9C11000E423CF /* LuaScriptCore */ = {
isa = PBXGroup;
children = (
7C9636711DC9C11000E423CF /* include */,
7C96367A1DC9C11000E423CF /* libLuaScriptCore.a */,
);
name = LuaScriptCore;
path = ../../../Release/iOS;
sourceTree = "<group>";
};
7C9636711DC9C11000E423CF /* include */ = {
isa = PBXGroup;
children = (
7C9636721DC9C11000E423CF /* LSCContext.h */,
7C9636731DC9C11000E423CF /* LSCFunction.h */,
7C9636741DC9C11000E423CF /* LSCModule.h */,
7C9636751DC9C11000E423CF /* LSCObjectClass.h */,
7C9636761DC9C11000E423CF /* LSCPointer.h */,
7C9636771DC9C11000E423CF /* LSCTypeDefinied.h */,
7C9636781DC9C11000E423CF /* LSCValue.h */,
7C9636791DC9C11000E423CF /* LuaScriptCore.h */,
);
path = include;
sourceTree = "<group>";
};
7CE6250E1D93B3AA007533D7 /* LuaScript */ = {
isa = PBXGroup;
children = (
7CE6250F1D93B3AA007533D7 /* dkjson.lua */,
7CE625101D93B3AA007533D7 /* main.lua */,
7CE625111D93B3AA007533D7 /* todo.lua */,
7C210E031DCB5FD3000838F9 /* test.lua */,
);
path = LuaScript;
sourceTree = "<group>";
Expand Down Expand Up @@ -314,6 +318,7 @@
7C5A61891D6AE2A3007D4308 /* Assets.xcassets in Resources */,
7CE625151D93B3AA007533D7 /* main.lua in Resources */,
7CE625131D93B3AA007533D7 /* dkjson.lua in Resources */,
7C210E051DCB5FD3000838F9 /* test.lua in Resources */,
7C5A618C1D6AE2A3007D4308 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -326,6 +331,7 @@
7C6B12811D6AFD1400489D9E /* Main.storyboard in Resources */,
7C6B127F1D6AFD1400489D9E /* Assets.xcassets in Resources */,
7C6B12801D6AFD1400489D9E /* LaunchScreen.storyboard in Resources */,
7C210E041DCB5FD3000838F9 /* test.lua in Resources */,
7CE625161D93B3AA007533D7 /* todo.lua in Resources */,
7CE625121D93B3AA007533D7 /* dkjson.lua in Resources */,
);
Expand Down
39 changes: 32 additions & 7 deletions Source/Android/luascriptcore/src/main/jni/LuaContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "LuaValue.h"
#include "LuaModule.h"
#include "LuaDefine.h"
#include "../../../../../lua-core/src/lua.hpp"
#include <map>
#include <list>
#include <iostream>
Expand Down Expand Up @@ -46,6 +47,9 @@ static int methodRouteHandler(lua_State *state) {
}
}

//回收内存
lua_gc(state, LUA_GCCOLLECT, 0);

return 1;
}

Expand All @@ -56,8 +60,10 @@ cn::vimfung::luascriptcore::LuaContext::LuaContext()
_exceptionHandler = NULL;
_state = luaL_newstate();

lua_gc(_state, LUA_GCSTOP, 0);
//加载标准库
luaL_openlibs(_state);
lua_gc(_state, LUA_GCRESTART, 0);
}

cn::vimfung::luascriptcore::LuaContext::~LuaContext()
Expand Down Expand Up @@ -241,6 +247,8 @@ void cn::vimfung::luascriptcore::LuaContext::addSearchPath(std::string path)

cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaContext::evalScript(std::string script)
{
LuaValue *retValue = NULL;

int curTop = lua_gettop(_state);
int ret = luaL_loadstring(_state, script.c_str()) ||
lua_pcall(_state, 0, 1, 0);
Expand All @@ -267,19 +275,27 @@ cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaContext::ev
if (lua_gettop(_state) > curTop) {

//有返回值
LuaValue *value = this -> getValueByIndex(-1);
retValue = this -> getValueByIndex(-1);
lua_pop(_state, 1);

return value;
}
}

return LuaValue::NilValue();
if (retValue == NULL)
{
retValue = LuaValue::NilValue();
}

//释放内存
lua_gc(_state, LUA_GCCOLLECT, 0);

return retValue;
}

cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaContext::evalScriptFromFile(
std::string path)
{
LuaValue *retValue = NULL;

int curTop = lua_gettop(_state);
int ret = luaL_loadfile(_state, path.c_str()) ||
lua_pcall(_state, 0, 1, 0);
Expand All @@ -306,13 +322,19 @@ cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaContext::ev
if (lua_gettop(_state) > curTop) {

//有返回值
LuaValue *value = this -> getValueByIndex(-1);
retValue = this -> getValueByIndex(-1);
lua_pop(_state, 1);

return value;
}
}

if (retValue == NULL)
{
retValue = LuaValue::NilValue();
}

//释放内存
lua_gc(_state, LUA_GCCOLLECT, 0);

return LuaValue::NilValue();
}

Expand Down Expand Up @@ -366,6 +388,9 @@ cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaContext::ca
resultValue = LuaValue::NilValue();
}

//回收内存
lua_gc(_state, LUA_GCCOLLECT, 0);

return resultValue;
}

Expand Down
9 changes: 4 additions & 5 deletions Source/Android/luascriptcore/src/main/jni/LuaFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,18 +106,17 @@ cn::vimfung::luascriptcore::LuaValue* cn::vimfung::luascriptcore::LuaFunction::i
value -> release();
}
}
else
{
lua_pop(state, 1);
}

lua_pop(state, 1);
lua_pop(state, 2);
}

if (!retValue)
{
retValue = new LuaValue();
}

//回收内存
lua_gc(state, LUA_GCCOLLECT, 0);

return retValue;
}
11 changes: 7 additions & 4 deletions Source/Android/luascriptcore/src/main/jni/LuaJavaConverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ LuaValue* LuaJavaConverter::convertToLuaValueByJObject(JNIEnv *env, jobject obje
}

}
else
else if (env -> IsSameObject(object, NULL) != JNI_TRUE)
{
//对象类型
LuaJavaObjectDescriptor *objDesc = new LuaJavaObjectDescriptor(object);
Expand Down Expand Up @@ -274,9 +274,12 @@ LuaValue* LuaJavaConverter::convertToLuaValueByJLuaValue(JNIEnv *env, jobject va
case LuaValueTypeObject:
{
jobject obj = env -> CallObjectMethod(value, toObjectId);
LuaJavaObjectDescriptor *objDesc = new LuaJavaObjectDescriptor(obj);
retValue = new LuaValue(objDesc);
objDesc -> release();
if (env -> IsSameObject(obj, NULL) != JNI_TRUE)
{
LuaJavaObjectDescriptor *objDesc = new LuaJavaObjectDescriptor(obj);
retValue = new LuaValue(objDesc);
objDesc -> release();
}
break;
}
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ static void _luaClassObjectCreated (cn::vimfung::luascriptcore::modules::oo::Lua
{
lua_pop(state, 2);
}

env -> DeleteLocalRef(jInstance);
}

LuaJavaEnv::resetEnv(env);
Expand Down
3 changes: 3 additions & 0 deletions Source/Android/luascriptcore/src/main/jni/LuaModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ static int methodRouteHandler(lua_State *state)
}
}

//回收内存
lua_gc(state, LUA_GCCOLLECT, 0);

return 1;
}

Expand Down
Loading

0 comments on commit 0e34275

Please sign in to comment.