summaryrefslogtreecommitdiff
path: root/openbox/actions.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-22 03:45:53 +0000
committerDana Jansens <danakj@orodu.net>2007-06-22 03:45:53 +0000
commit9dacac5e5e6b9ed86e76680b048bc227d8866ac6 (patch)
treee154b3b5b959d06060e66ddb21466e075a8d364a /openbox/actions.c
parentb76ec18d1c8857cf32598c822364298fc535c84e (diff)
added the debug action
Diffstat (limited to 'openbox/actions.c')
-rw-r--r--openbox/actions.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/openbox/actions.c b/openbox/actions.c
index 44a39cb5..9a5d193c 100644
--- a/openbox/actions.c
+++ b/openbox/actions.c
@@ -83,14 +83,15 @@ gboolean actions_register(const gchar *name,
GSList *it;
ObActionsDefinition *def;
+ g_assert(run != NULL);
+ g_assert((i_input == NULL) == (i_cancel == NULL));
+
for (it = registered; it; it = g_slist_next(it)) {
def = it->data;
if (!g_ascii_strcasecmp(name, def->name)) /* already registered */
return FALSE;
}
- g_assert((i_input == NULL) == (i_cancel == NULL));
-
def = g_new(ObActionsDefinition, 1);
def->ref = 1;
def->name = g_strdup(name);
@@ -156,7 +157,8 @@ ObActionsAct* actions_parse(ObParseInst *i,
if (parse_attr_string("name", node, &name)) {
if ((act = actions_parse_string(name)))
/* there is more stuff to parse here */
- act->options = act->def->setup(i, doc, node->xmlChildrenNode);
+ if (act->def->setup)
+ act->options = act->def->setup(i, doc, node->xmlChildrenNode);
g_free(name);
}
@@ -178,7 +180,8 @@ void actions_act_unref(ObActionsAct *act)
{
if (act && --act->ref == 0) {
/* free the action specific options */
- act->def->free(act->options);
+ if (act->def->free)
+ act->def->free(act->options);
/* unref the definition */
actions_definition_unref(act->def);
g_free(act);