[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-commits-diffs] net.venge.monotone.lua-5.2: ec13e709d23196f0d51
From: |
code |
Subject: |
[Monotone-commits-diffs] net.venge.monotone.lua-5.2: ec13e709d23196f0d51dc4e588ac86efe88c8219 |
Date: |
Wed, 25 Apr 2012 14:54:56 +0200 (CEST) |
revision: ec13e709d23196f0d51dc4e588ac86efe88c8219
date: 2012-04-25T11:08:35
author: Richard Levitte <address@hidden>
branch: net.venge.monotone.lua-5.2
changelog:
* src/lua.hh: With Lua 5.2, the pseudoindex `LUA_GLOBALSINDEX' is
removed, and you have to use `lua_getglobal' instead. For the sake of
simplicity, we use 0 to mean globals. That should be safe, since in
Lua, index 0 is invalid, and therefore not used.
* src/lua.cc (Lua::get): Reworked to use `lua_getglobal' when idx is 0.
manifest:
format_version "1"
new_manifest [7d232537152886f54148571168b54d346a452357]
old_revision [8a08d01a6fa7af676d5ce14acc81428f437ccaf1]
patch "src/lua.cc"
from [bd639c79e1f8227e0f50461e27530bef41ce7cbb]
to [52eed5f74bd6a2e6ba8e431ceeb230b49971d1c7]
patch "src/lua.hh"
from [146872f14cc23c6179c37bcda8667a0ecd178826]
to [4396421e2bb335241ce33c29a53aeffd3ebf7380]
============================================================
--- src/lua.cc bd639c79e1f8227e0f50461e27530bef41ce7cbb
+++ src/lua.cc 52eed5f74bd6a2e6ba8e431ceeb230b49971d1c7
@@ -119,17 +119,27 @@ Lua::get(int idx)
Lua::get(int idx)
{
if (failed) return *this;
- if (!lua_istable (st, idx))
+ if (lua_gettop (st) < 1)
{
- fail("istable() in get");
+ fail("stack top > 0 in get");
return *this;
}
- if (lua_gettop (st) < 1)
+ if (idx)
{
- fail("stack top > 0 in get");
- return *this;
+ if (!lua_istable (st, idx))
+ {
+ fail("istable() in get");
+ return *this;
+ }
+ lua_gettable(st, idx);
}
- lua_gettable(st, idx);
+ else
+ {
+ string name;
+ extract_str(name);
+ pop();
+ lua_getglobal(st, name.c_str);
+ }
return *this;
}
============================================================
--- src/lua.hh 146872f14cc23c6179c37bcda8667a0ecd178826
+++ src/lua.hh 4396421e2bb335241ce33c29a53aeffd3ebf7380
@@ -37,13 +37,13 @@ Lua
void report_error();
bool check_stack(int count);
- // getters
- Lua & get(int idx = LUA_GLOBALSINDEX);
- Lua & get_fn(int idx = LUA_GLOBALSINDEX);
- Lua & get_tab(int idx = LUA_GLOBALSINDEX);
- Lua & get_str(int idx = LUA_GLOBALSINDEX);
- Lua & get_num(int idx = LUA_GLOBALSINDEX);
- Lua & get_bool(int idx = LUA_GLOBALSINDEX);
+ // getters (0 is an invalid index in lua, and is used here to represent the global table)
+ Lua & get(int idx = 0);
+ Lua & get_fn(int idx = 0);
+ Lua & get_tab(int idx = 0);
+ Lua & get_str(int idx = 0);
+ Lua & get_num(int idx = 0);
+ Lua & get_bool(int idx = 0);
// extractors
Lua & extract_str_nolog(std::string & str);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-commits-diffs] net.venge.monotone.lua-5.2: ec13e709d23196f0d51dc4e588ac86efe88c8219,
code <=