Skip to content

Commit b6ee800

Browse files
committed
lua_shared.cpp
1 parent f27aecd commit b6ee800

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

section4/luajit.cpp

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include <cassert>
1616
#include <iostream>
17+
#include <memory>
1718

1819
extern "C" {
1920
#include <luajit.h>
@@ -27,6 +28,7 @@ using namespace luabridge;
2728

2829
using namespace std;
2930

31+
#if 0
3032
class MyLuaState final
3133
{
3234
public:
@@ -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

6482
void 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

7796
void 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

89109
void case3()
90110
{
91-
MyLuaState L;
111+
//MyLuaState L;
112+
auto vm = make_luavm();
92113

93114
int status;
94115
string chunk = R"(

0 commit comments

Comments
 (0)