projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lua plugin: don't elements from stack in `clua_store_thread`.
[collectd.git]
/
src
/
lua.c
diff --git
a/src/lua.c
b/src/lua.c
index
45b5b18
..
8dc78d0
100644
(file)
--- a/
src/lua.c
+++ b/
src/lua.c
@@
-41,7
+41,6
@@
#include <pthread.h>
typedef struct lua_script_s {
#include <pthread.h>
typedef struct lua_script_s {
- char *script_path;
lua_State *lua_state;
struct lua_script_s *next;
} lua_script_t;
lua_State *lua_state;
struct lua_script_s *next;
} lua_script_t;
@@
-80,18
+79,14
@@
static int clua_load_callback(lua_State *L, int callback_ref) /* {{{ */
* garbage collector. */
static int clua_store_thread(lua_State *L, int idx) /* {{{ */
{
* garbage collector. */
static int clua_store_thread(lua_State *L, int idx) /* {{{ */
{
- if (idx < 0)
- idx += lua_gettop(L) + 1;
-
- /* Copy the thread pointer */
- lua_pushvalue(L, idx); /* +1 = 3 */
- if (!lua_isthread(L, -1)) {
- lua_pop(L, 3); /* -3 = 0 */
+ if (!lua_isthread(L, idx)) {
return -1;
}
return -1;
}
+ /* Copy the thread pointer */
+ lua_pushvalue(L, idx);
+
luaL_ref(L, LUA_REGISTRYINDEX);
luaL_ref(L, LUA_REGISTRYINDEX);
- lua_pop(L, 1); /* -1 = 0 */
return 0;
} /* }}} int clua_store_thread */
return 0;
} /* }}} int clua_store_thread */
@@
-389,7
+384,6
@@
static void lua_script_free(lua_script_t *script) /* {{{ */
script->lua_state = NULL;
}
script->lua_state = NULL;
}
- sfree(script->script_path);
sfree(script);
lua_script_free(next);
sfree(script);
lua_script_free(next);
@@
-453,14
+447,7
@@
static int lua_script_load(const char *script_path) /* {{{ */
return status;
}
return status;
}
- script->script_path = strdup(script_path);
- if (script->script_path == NULL) {
- ERROR("Lua plugin: strdup failed.");
- lua_script_free(script);
- return -1;
- }
-
- status = luaL_loadfile(script->lua_state, script->script_path);
+ status = luaL_loadfile(script->lua_state, script_path);
if (status != 0) {
ERROR("Lua plugin: luaL_loadfile failed: %s",
lua_tostring(script->lua_state, -1));
if (status != 0) {
ERROR("Lua plugin: luaL_loadfile failed: %s",
lua_tostring(script->lua_state, -1));
@@
-482,7
+469,7
@@
static int lua_script_load(const char *script_path) /* {{{ */
status);
else
ERROR("Lua plugin: Executing script \"%s\" failed:\n%s",
status);
else
ERROR("Lua plugin: Executing script \"%s\" failed:\n%s",
- script
->script
_path, errmsg);
+ script_path, errmsg);
lua_script_free(script);
return -1;
lua_script_free(script);
return -1;