{ iter = iter->header.nextsib.framebox;\r
goto check;\r
}\r
- return iter->header.nextsib = struct_alloc(ir_framebox_t);\r
+ iter->header.nextsib = (union ir_setdata_t*) struct_alloc(ir_framebox_t);\r
+ return iter->header.nextsib.framebox;\r
}\r
\r
/* Match two null-terminated bytestrings\r
break;\r
case ADAT:\r
if (set->audio == NULL)\r
- { set->audio = setdata->audio;\r
+ { set->audio = setdata;\r
return;\r
}\r
simplex = set->audio;\r
while (simplex->header.nextsib != NULL)\r
if (bytes_identical(simplex->header.data_name, setdata->header.data_name))\r
{ wprintf("Duplicate audio %s\n", setdata->header.data_name);\r
- *simplex = *(setdata->audio);\r
+ *simplex = setdata->audio;\r
//setdata->audio is now a pointer to redundant, unused memory.\r
return;\r
}\r
else\r
- simplex = simplex->header.nextsib.audio;\r
- simplex->header.nextsib.audio = setdata->audio;\r
+ simplex = simplex->header.nextsib->audio;\r
+ simplex->header.nextsib = setdata;\r
break;\r
case LDAT:\r
if (set->links == NULL)\r
- { set->links = setdata->link;\r
+ { set->links = setdata;\r
return;\r
}\r
link = set->links;\r
while (link->header.nextsib != NULL)\r
link = link->header.nextsib.link;\r
- link->header.nextsib.link = setdata->link;\r
+ link->header.nextsib = setdata;\r
break;\r
default:\r
fprintf(stderr, "Unknown setdata type %x\n", setdata->header.type);\r
long long ref\r
)\r
{ if (set->ref != 0)\r
- wprintf("Ref override: 0x%x -> 0x%x for set %s\n",\r
+ wprintf("Ref override: 0x%lx -> 0x%lx for set %s\n",\r
set->ref, ref, set->name);\r
set->ref = ref;\r
//TODO: reflist_add(set);\r
( union ir_setdata_t* setdata,\r
uint8_t* path\r
)\r
-{ if (setdata->header.src_filename)\r
- wprintf("Path override: %s -> %s for set %s\n",\r
- setdata->header.src_filename, path, setdata->name);\r
- setdata->header.src_filename = path;\r
+{ setdata->header.src_filename = path;\r
//TODO: internal strdup, not assign (= path;)\r
}\r
\r