kconfig: squash prop_alloc() into menu_add_prop()
[carl9170fw.git] / config / menu.c
index 45daece8d9834127055f90b855b575bef7b48a52..8b772ced755dd382cef4b184499627c582aaab21 100644 (file)
@@ -124,21 +124,38 @@ void menu_set_type(int type)
                sym_type_name(sym->type), sym_type_name(type));
 }
 
-static struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep)
+static struct property *menu_add_prop(enum prop_type type, struct expr *expr,
+                                     struct expr *dep)
 {
-       struct property *prop = prop_alloc(type, current_entry->sym);
+       struct property *prop;
 
+       prop = xmalloc(sizeof(*prop));
+       memset(prop, 0, sizeof(*prop));
+       prop->type = type;
+       prop->file = current_file;
+       prop->lineno = zconf_lineno();
        prop->menu = current_entry;
        prop->expr = expr;
        prop->visible.expr = dep;
 
+       /* append property to the prop list of symbol */
+       if (current_entry->sym) {
+               struct property **propp;
+
+               for (propp = &current_entry->sym->prop;
+                    *propp;
+                    propp = &(*propp)->next)
+                       ;
+               *propp = prop;
+       }
+
        return prop;
 }
 
 struct property *menu_add_prompt(enum prop_type type, char *prompt,
                                 struct expr *dep)
 {
-       struct property *prop = menu_add_prop(type, prompt, NULL, dep);
+       struct property *prop = menu_add_prop(type, NULL, dep);
 
        if (isspace(*prompt)) {
                prop_warn(prop, "leading whitespace ignored");
@@ -185,12 +202,12 @@ void menu_add_visibility(struct expr *expr)
 
 void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
 {
-       menu_add_prop(type, NULL, expr, dep);
+       menu_add_prop(type, expr, dep);
 }
 
 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
 {
-       menu_add_prop(type, NULL, expr_alloc_symbol(sym), dep);
+       menu_add_prop(type, expr_alloc_symbol(sym), dep);
 }
 
 void menu_add_option_modules(void)