--- a/src/nexus.c Wed Apr 01 00:38:16 2009 +0300
+++ b/src/nexus.c Wed Apr 01 00:57:34 2009 +0300
@@ -272,19 +272,25 @@
struct console_config config = {
.prompt = "> ",
};
+ struct console *console;
log_info("initializing the console");
// init the console
- if (console_init(&nexus->console, nexus->ev_base, &config, NULL, NULL, err))
+ if (console_init(&console, nexus->ev_base, &config, NULL, NULL, err))
return ERROR_CODE(err);
// create the lua console on top of that
- if (lua_console_create(&nexus->lua_console, nexus->console, nexus, err))
- return ERROR_CODE(err);
+ if (lua_console_create(&nexus->lua_console, console, nexus->lua, err))
+ goto error;
// ok
return SUCCESS;
+
+error:
+ console_destroy(console);
+
+ return ERROR_CODE(err);
}
/**
@@ -381,6 +387,10 @@
void nexus_destroy (struct nexus *nexus)
{
+ // destroy the lua state
+ if (nexus->lua)
+ nexus_lua_destroy(nexus->lua);
+
// destroy the modules
if (nexus->modules)
modules_destroy(nexus->modules);
@@ -447,8 +457,12 @@
// the IRC client
if (irc_client_create(&nexus->client, &err))
FATAL_ERROR(&err, "irc_client_create");
+
+ // lua state
+ if (nexus_lua_create(&nexus->lua, nexus, &err))
+ FATAL_ERROR(&err, "nexus_lua_create");
-
+
// parse args
if (parse_args(nexus, argc, argv, &err))
FATAL_ERROR(&err, "parse_args");