File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1414
1515#include < cassert>
1616#include < iostream>
17+ #include < memory>
1718
1819extern " C" {
1920#include < luajit.h>
@@ -27,6 +28,7 @@ using namespace luabridge;
2728
2829using namespace std ;
2930
31+ #if 0
3032class MyLuaState final
3133{
3234public:
@@ -60,10 +62,27 @@ class MyLuaState final
6062 MyLuaState(const MyLuaState&) = delete;
6163 MyLuaState& operator=(const MyLuaState&) = delete;
6264};
65+ #endif
66+
67+ // using MyLuaState = std::shared_ptr<lua_State>;
68+ auto make_luavm = []()
69+ {
70+ std::shared_ptr<lua_State> vm (
71+ luaL_newstate (), lua_close
72+ );
73+ assert (vm);
74+
75+ luaL_openlibs (vm.get ());
76+
77+ return vm;
78+ };
79+
80+ #define L vm.get()
6381
6482void case1 ()
6583{
66- MyLuaState L;
84+ // MyLuaState L;
85+ auto vm = make_luavm ();
6786
6887 auto package = getGlobal (L, " package" );
6988
@@ -76,7 +95,8 @@ void case1()
7695
7796void case2 ()
7897{
79- MyLuaState L;
98+ // MyLuaState L;
99+ auto vm = make_luavm ();
80100
81101 int status;
82102
@@ -88,7 +108,8 @@ void case2()
88108
89109void case3 ()
90110{
91- MyLuaState L;
111+ // MyLuaState L;
112+ auto vm = make_luavm ();
92113
93114 int status;
94115 string chunk = R"(
You can’t perform that action at this time.
0 commit comments