summaryrefslogtreecommitdiffstats
path: root/src/stk.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-10-14 01:21:10 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-10-14 01:38:52 -0500
commit52fade93ac130fef7f37fe5f81f81c5914862388 (patch)
treeded530ac5e24e1657e0c3e015b97b194d3eb0021 /src/stk.c
parent5b1f4d12166ca09340d2fce0f5d9307307f31757 (diff)
downloadofono-52fade93ac130fef7f37fe5f81f81c5914862388.tar.bz2
stk: Reflow stk_menu_create slightly
Diffstat (limited to 'src/stk.c')
-rw-r--r--src/stk.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/stk.c b/src/stk.c
index b8891017..f32c7c10 100644
--- a/src/stk.c
+++ b/src/stk.c
@@ -262,18 +262,22 @@ static struct stk_menu *stk_menu_create(const char *title,
const struct stk_item_icon_id_list *item_icon_ids,
int default_id, gboolean soft_key, gboolean has_help)
{
- struct stk_menu *ret = g_new(struct stk_menu, 1);
unsigned int len = g_slist_length(items);
+ struct stk_menu *ret;
GSList *l;
int i;
DBG("");
if (item_attrs && item_attrs->len && item_attrs->len != len * 4)
- goto error;
+ return NULL;
if (item_icon_ids && item_icon_ids->len && item_icon_ids->len != len)
- goto error;
+ return NULL;
+
+ ret = g_try_new(struct stk_menu, 1);
+ if (ret == NULL)
+ return NULL;
ret->title = g_strdup(title ? title : "");
memcpy(&ret->icon, icon, sizeof(ret->icon));
@@ -287,6 +291,7 @@ static struct stk_menu *stk_menu_create(const char *title,
ret->items[i].text = g_strdup(item->text);
ret->items[i].item_id = item->id;
+
if (item_icon_ids && item_icon_ids->len)
ret->items[i].icon_id = item_icon_ids->list[i];
@@ -295,10 +300,6 @@ static struct stk_menu *stk_menu_create(const char *title,
}
return ret;
-
-error:
- g_free(ret);
- return NULL;
}
static struct stk_menu *stk_menu_create_from_set_up_menu(