From: Jordan Date: Wed, 11 Jan 2017 23:32:32 +0000 (-0800) Subject: fixes X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=commitdiff_plain;h=813c9a9288b0e1c76d290749d012158b528ccc98 fixes --- diff --git a/src/ir.c b/src/ir.c index 7c52f3c..f46d988 100644 --- a/src/ir.c +++ b/src/ir.c @@ -250,7 +250,8 @@ struct ir_framebox_t* ir_set_add_framebox { iter = iter->header.nextsib.framebox; goto check; } - return iter->header.nextsib = struct_alloc(ir_framebox_t); + iter->header.nextsib = (union ir_setdata_t*) struct_alloc(ir_framebox_t); + return iter->header.nextsib.framebox; } /* 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 = 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.audio; - simplex->header.nextsib.audio = setdata->audio; + simplex = simplex->header.nextsib->audio; + simplex->header.nextsib = setdata; break; case LDAT: if (set->links == NULL) - { set->links = setdata->link; + { set->links = setdata; return; } link = set->links; while (link->header.nextsib != NULL) link = link->header.nextsib.link; - link->header.nextsib.link = setdata->link; + link->header.nextsib = setdata; break; default: fprintf(stderr, "Unknown setdata type %x\n", setdata->header.type); @@ -330,7 +331,7 @@ void ir_set_assign_ref long long ref ) { if (set->ref != 0) - wprintf("Ref override: 0x%x -> 0x%x for set %s\n", + wprintf("Ref override: 0x%lx -> 0x%lx for set %s\n", set->ref, 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;) }