lm_message_handler.c
changeset 6 90073cbb535d
parent 0 84fdfb0344c9
child 9 50f55d494efb
--- 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;
 }