struct pmenu_item *pmenu_item_alloc(struct pmenu *menu);
struct pmenu_item *pmenu_item_setup(struct pmenu *menu, struct pmenu_item *i,
unsigned int index, const char *name);
-int pmenu_item_replace(struct pmenu_item *i, const char *name);
void pmenu_item_delete(struct pmenu_item *item);
static inline struct pmenu_item *pmenu_item_from_arg(void *arg)
static inline struct pmenu_item *pmenu_item_init(struct pmenu *menu,
unsigned int index, const char *name)
{
- return pmenu_item_setup(menu, pmenu_item_alloc(menu), index, name);
+ struct pmenu_item *item = pmenu_item_alloc(menu);
+
+ if (pmenu_item_setup(menu, item, index, name)) {
+ talloc_free(item);
+ item = NULL;
+ }
+
+ return item;
}
/**