--- a/lm_message_handler.c Mon Feb 16 01:32:12 2009 +0200
+++ b/lm_message_handler.c Fri Feb 20 23:07:43 2009 +0200
@@ -4,6 +4,7 @@
#include <glib.h>
#include <loudmouth/loudmouth.h>
+#include "config.h"
#include "lm_types.h"
#include "util.h"
@@ -25,7 +26,7 @@
llm_message_bless (cb->L, message);
// XXX lm_message_unref (message);
if (lua_pcall (cb->L, 2, 1, 0)) {
- // XXX lua_error (cb->L);
+ E ("Message handler callback error: %s", lua_tostring (cb->L, -1));
lua_pop (cb->L, 1);
return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
}
@@ -55,6 +56,7 @@
cb, (GDestroyNotify)llm_callback_destroy);
llm_message_handler_bless (L, handler);
lm_message_handler_unref (handler); // XXX
+ D ("Message handler %X created", (int) handler);
return 1;
}
@@ -66,18 +68,18 @@
{
luaL_argcheck (L, lua_islightuserdata (L, 1), 1, "loudmouth message handler pointer expected");
llm_message_handler_bless (L, lua_touserdata (L, 1));
- lua_remove (L, -2);
return 1;
}
+// XXX: merge with next?
/// message_handler:invalidate
/// Invalidates handler.
+/// R: lm message handler object
static int llm_message_handler_invalidate (lua_State *L)
{
llm_message_handler_t *object = luaL_checklm_message_handler (L, 1);
lm_message_handler_invalidate (object->message_handler);
- lua_pop (L, 1);
- return 0;
+ return 1;
}
/// message_handler:valid
@@ -87,7 +89,6 @@
{
llm_message_handler_t *object = luaL_checklm_message_handler (L, 1);
lua_pushboolean (L, lm_message_handler_is_valid (object->message_handler));
- lua_remove (L, -2);
return 1;
}
@@ -98,15 +99,14 @@
{
llm_message_handler_t *object = luaL_checklm_message_handler (L, 1);
lua_pushlightuserdata (L, object->message_handler);
- lua_remove (L, -2);
return 1;
}
static int llm_message_handler_gc (lua_State *L)
{
llm_message_handler_t *object = luaL_checklm_message_handler (L, 1);
+ D ("Message handler %X gc called", (int) object);
lm_message_handler_unref (object->message_handler);
- lua_pop (L, 1);
return 0;
}