X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Fconf-section.c;h=bbd3416426ef5ddc643928cfb739cd07bf34102f;hb=f0459952ab7a84b2a2e16ee38456087b0986a228;hp=2e27546abc96fbc5173daaf224ae932d86060f52;hpb=6ceca20e5981c2ea45c51e0991269dedb9e91440;p=libucw.git diff --git a/lib/conf-section.c b/lib/conf-section.c index 2e27546a..bbd34164 100644 --- a/lib/conf-section.c +++ b/lib/conf-section.c @@ -91,7 +91,7 @@ inspect_section(struct cf_section *sec) } else if (ci->cls == CC_LIST) { inspect_section(ci->u.sec); sec->flags |= SEC_FLAG_DYNAMIC | SEC_FLAG_CANT_COPY; - } else if (ci->cls == CC_DYNAMIC) + } else if (ci->cls == CC_DYNAMIC || ci->cls == CC_BITMAP) sec->flags |= SEC_FLAG_DYNAMIC; else if (ci->cls == CC_PARSER) { sec->flags |= SEC_FLAG_CANT_COPY; @@ -140,11 +140,11 @@ cf_init_section(byte *name, struct cf_section *sec, void *ptr, uns do_bzero) } for (struct cf_item *ci=sec->cfg; ci->cls; ci++) if (ci->cls == CC_SECTION) - cf_init_section(ci->name, ci->u.sec, ptr + (addr_int_t) ci->ptr, 0); + cf_init_section(ci->name, ci->u.sec, ptr + (uintptr_t) ci->ptr, 0); else if (ci->cls == CC_LIST) - clist_init(ptr + (addr_int_t) ci->ptr); + clist_init(ptr + (uintptr_t) ci->ptr); else if (ci->cls == CC_DYNAMIC) { - void **dyn = ptr + (addr_int_t) ci->ptr; + void **dyn = ptr + (uintptr_t) ci->ptr; if (!*dyn) { // replace NULL by an empty array static uns zero = 0; *dyn = (&zero) + 1; @@ -163,13 +163,13 @@ commit_section(struct cf_section *sec, void *ptr, uns commit_all) byte *err; for (struct cf_item *ci=sec->cfg; ci->cls; ci++) if (ci->cls == CC_SECTION) { - if ((err = commit_section(ci->u.sec, ptr + (addr_int_t) ci->ptr, commit_all))) { + if ((err = commit_section(ci->u.sec, ptr + (uintptr_t) ci->ptr, commit_all))) { log(L_ERROR, "Cannot commit section %s: %s", ci->name, err); return "commit of a subsection failed"; } } else if (ci->cls == CC_LIST) { uns idx = 0; - CLIST_FOR_EACH(cnode *, n, * (clist*) (ptr + (addr_int_t) ci->ptr)) + CLIST_FOR_EACH(cnode *, n, * (clist*) (ptr + (uintptr_t) ci->ptr)) if (idx++, err = commit_section(ci->u.sec, n, commit_all)) { log(L_ERROR, "Cannot commit node #%d of list %s: %s", idx, ci->name, err); return "commit of a list failed";