From: ken Date: Fri, 17 Feb 2017 05:45:57 +0000 (-0800) Subject: linkdata_set implementation X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=commitdiff_plain;h=03bec8cb89af10a1bac8f7bd90484f6cb32fbad5 linkdata_set implementation --- diff --git a/src/ir.c b/src/ir.c index 5f5ba21..e61d388 100644 --- a/src/ir.c +++ b/src/ir.c @@ -650,15 +650,16 @@ struct ir_set_t* ir_linkdata_set { namelist_iter = classld->namelist; if (classld->root_class == NULL) eprintf("No root class for classld\n"); - for (class_iter = classld->root_class->nextchild; - class_iter != NULL; - class_iter = class_iter->nextsib) + class_iter = classld->root_class->nextchild; + while (class_iter != NULL) { if (classnames_identical(class_iter->name, namelist_iter->name)) { if (namelist_iter == classld->namelist_head) break; class_iter = class_iter->nextchild; namelist_iter = namelist_iter->nextsib; } + else + class_iter = class_iter->nextsib; } if (class_iter == NULL) eprintf("Class resolution failed\n"); @@ -676,6 +677,8 @@ struct ir_set_t* ir_linkdata_set set = set->nextchild; namelist_iter = namelist_iter->nextsib; } + else + set = set->nextsib; } return set; }