file: remove unnecessary uci_fixup_section calls
[project/uci.git] / list.c
diff --git a/list.c b/list.c
index 0d00f81..e78012b 100644 (file)
--- a/list.c
+++ b/list.c
@@ -144,7 +144,7 @@ static unsigned int djbhash(unsigned int hash, char *str)
 }
 
 /* fix up an unnamed section, e.g. after adding options to it */
-__private void uci_fixup_section(struct uci_context *ctx, struct uci_section *s)
+static void uci_fixup_section(struct uci_context *ctx, struct uci_section *s)
 {
        unsigned int hash = ~0;
        struct uci_element *e;
@@ -431,11 +431,12 @@ uci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str, bool ext
 complete:
        ptr->flags |= UCI_LOOKUP_COMPLETE;
 abort:
-       return 0;
+       return UCI_OK;
 
 notfound:
        UCI_THROW(ctx, UCI_ERR_NOTFOUND);
-       return 0;
+       /* not a chance here */
+       return UCI_ERR_NOTFOUND;
 }
 
 __private struct uci_element *
@@ -534,7 +535,8 @@ int uci_add_section(struct uci_context *ctx, struct uci_package *p, const char *
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, p != NULL);
        s = uci_alloc_section(p, type, NULL);
-       uci_fixup_section(ctx, s);
+       if (s && s->anonymous)
+               uci_fixup_section(ctx, s);
        *res = s;
        if (!internal && p->has_delta)
                uci_add_delta(ctx, &p->delta, UCI_CMD_ADD, s->e.name, NULL, type);