summarylogtreecommitdiffstats
path: root/004-luabind-getsetuservalue.patch
blob: 994f999c827f664d594a528c3a7c0a4c35c8598e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
From 9d9130ae22c2a32b0275189aa8ff28ac293edf66 Mon Sep 17 00:00:00 2001
From: Peter Colberg <peter.colberg@utoronto.ca>
Date: Wed, 21 Dec 2011 13:41:29 -0500
Subject: [PATCH] Lua 5.2: replace lua_[gs]etfenv with lua_[gs]etuservalue

http://www.lua.org/manual/5.2/manual.html#8.1
---
 src/object_rep.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/object_rep.cpp b/src/object_rep.cpp
index 6977bee..a8d990e 100755
--- a/src/object_rep.cpp
+++ b/src/object_rep.cpp
@@ -25,6 +25,11 @@
 #include <luabind/detail/object_rep.hpp>
 #include <luabind/detail/class_rep.hpp>
 
+#if LUA_VERSION_NUM < 502
+# define lua_getuservalue lua_getfenv
+# define lua_setuservalue lua_setfenv
+#endif
+
 namespace luabind { namespace detail
 {
 
@@ -94,7 +99,7 @@
 
       int set_instance_value(lua_State* L)
       {
-          lua_getfenv(L, 1);
+          lua_getuservalue(L, 1);
           lua_pushvalue(L, 2);
           lua_rawget(L, -2);
 
@@ -129,7 +134,7 @@
           {
               lua_newtable(L);
               lua_pushvalue(L, -1);
-              lua_setfenv(L, 1);
+              lua_setuservalue(L, 1);
               lua_pushvalue(L, 4);
               lua_setmetatable(L, -2);
           }
@@ -147,7 +152,7 @@
 
       int get_instance_value(lua_State* L)
       {
-          lua_getfenv(L, 1);
+          lua_getuservalue(L, 1);
           lua_pushvalue(L, 2);
           lua_rawget(L, -2);
 
@@ -262,7 +267,7 @@
         void* storage = lua_newuserdata(L, sizeof(object_rep));
         object_rep* result = new (storage) object_rep(0, cls);
         cls->get_table(L);
-        lua_setfenv(L, -2);
+        lua_setuservalue(L, -2);
         lua_rawgeti(L, LUA_REGISTRYINDEX, cls->metatable_ref());
         lua_setmetatable(L, -2);
         return result;
-- 
1.8.1.6