- for(np = labels[i]; np != NULL; np = np->next) {
- assert(np->label != NULL);
- ar[asize] = malloc_chk(sizeof(LABELARRAY), "ar[asize]");
- ar[asize]->prog = (np->prog == NULL ? NULL : strdup(np->prog));
- ar[asize]->label = strdup(np->label);
- ar[asize++]->adr = np->adr;
+ for(p = labels[i]; p != NULL; p = p->next) {
+ assert(p->label != NULL);
+ ar[asize] = malloc_chk(sizeof(LABELARRAY), "ar[]");
+ if(p->prog == NULL) {
+ ar[asize]->prog = NULL;
+ } else {
+ ar[asize]->prog = strdup_chk(p->prog, "ar[].prog");
+ }
+ ar[asize]->label = strdup_chk(p->label, "ar[].label");
+ ar[asize++]->adr = p->adr;