From 03bec8cb89af10a1bac8f7bd90484f6cb32fbad5 Mon Sep 17 00:00:00 2001 From: ken Date: Thu, 16 Feb 2017 21:45:57 -0800 Subject: [PATCH] linkdata_set implementation --- src/ir.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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; } -- 2.18.0