X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Fir.c;h=63fe72bbdfa353ceea2324c3da81779f8d880ef5;hp=593bae120d815563638c248acb00936325e3b3c6;hb=1f5e543b9088b021c859a2995a273dfa3397d381;hpb=b503d817730f737819886d20463be80e5935dfb2 diff --git a/src/ir.c b/src/ir.c index 593bae1..63fe72b 100644 --- a/src/ir.c +++ b/src/ir.c @@ -247,10 +247,11 @@ struct ir_framebox_t* ir_set_add_framebox if (bytes_identical(iter->header.data_name, name)) return iter; if (iter->header.nextsib != NULL) - { iter = iter->header.nextsib; + { iter = (struct ir_framebox_t*) iter->header.nextsib; goto check; } - return iter->header.nextsib = struct_alloc(ir_framebox_t); + iter->header.nextsib = (union ir_setdata_t*) struct_alloc(ir_framebox_t); + return (struct ir_framebox_t*) iter->header.nextsib; } /* Match two null-terminated bytestrings @@ -294,30 +295,30 @@ void ir_set_assign_data break; case ADAT: if (set->audio == NULL) - { set->audio = setdata->audio; + { set->audio = (struct ir_simplex_t*) setdata; return; } simplex = set->audio; while (simplex->header.nextsib != NULL) if (bytes_identical(simplex->header.data_name, setdata->header.data_name)) { wprintf("Duplicate audio %s\n", setdata->header.data_name); - *simplex = *setdata->audio; + *simplex = setdata->audio; //setdata->audio is now a pointer to redundant, unused memory. return; } else - simplex = simplex->header.nextsib; - simplex->header.nextsib = setdata->audio; + simplex = (struct ir_simplex_t*) simplex->header.nextsib; + simplex->header.nextsib = setdata; break; case LDAT: if (set->links == NULL) - { set->links = setdata->link; + { set->links = (struct ir_link_t*) setdata; return; } link = set->links; while (link->header.nextsib != NULL) - link = link->header.nextsib; - link->header.nextsib = setdata->link; + link = (struct ir_link_t*) link->header.nextsib; + link->header.nextsib = setdata; break; default: fprintf(stderr, "Unknown setdata type %x\n", setdata->header.type); @@ -326,12 +327,12 @@ void ir_set_assign_data } void ir_set_assign_ref -( ir_set_t* set, - long long ref +( struct ir_set_t* set, + long long ref ) { if (set->ref != 0) - wprintf("Ref override: 0x%x -> 0x%x for set %s\n", - set->ref, ref, set->name); + wprintf("Ref override: 0x%lx -> 0x%lx for set %s\n", + (long unsigned) set->ref, (long unsigned) ref, set->name); set->ref = ref; //TODO: reflist_add(set); } @@ -340,10 +341,7 @@ void ir_data_assign_path ( union ir_setdata_t* setdata, uint8_t* path ) -{ if (setdata->header.src_filename) - wprintf("Path override: %s -> %s for set %s\n", - setdata->header.src_filename, path, setdata->name); - setdata->header.src_filename = path; +{ setdata->header.src_filename = path; //TODO: internal strdup, not assign (= path;) }