summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--laugeas.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/laugeas.c b/laugeas.c
index 8e0a593..68606b2 100644
--- a/laugeas.c
+++ b/laugeas.c
@@ -128,10 +128,14 @@ static int Paug_defnode(lua_State *L)
static int Paug_close(lua_State *L)
{
- augeas *a = Paug_checkarg(L, 1);
- if (a)
- aug_close(a);
- a = NULL;
+ augeas **a;
+ luaL_checktype(L, 1, LUA_TUSERDATA);
+ a = (augeas **) luaL_checkudata(L, 1, PAUG_META);
+
+ if (a && *a) {
+ aug_close(*a);
+ *a = NULL;
+ }
return 0;
}