diff --git a/lang/module.c b/lang/module.c index 8c16fa8..58fbf47 100644 --- a/lang/module.c +++ b/lang/module.c @@ -35,12 +35,12 @@ struct module_stack { ModuleInfo *elems[64]; - int top; + int next; }; // Checks if an info is in a stack static int in_stack(const ModuleInfo *info, struct module_stack *stack) { - for (int i = 0; i < stack->top; ++i) { + for (int i = 0; i < stack->next; ++i) { ModuleInfo *elem = stack->elems[i]; if (elem == info) return 1; @@ -56,10 +56,10 @@ static struct module_stack traversing = {0}; if (sizeof(modules_list) > sizeof(traversing.elems)) abort_print("Modules too big to traverse"); - traversing.top = 0; - traversing.elems[traversing.top] = start; + traversing.next = 0; + traversing.elems[traversing.next] = start; do { - ModuleInfo *cur = traversing.elems[traversing.top]; + ModuleInfo *cur = traversing.elems[traversing.next]; const char **use = cur->uses; while (*use) { const ModuleInfo *info = info_by_name(*use); @@ -68,17 +68,16 @@ if (in_stack(info, &traversing)) abort_print("Cyclic dependency found"); if (!in_stack(info, visited)) { - traversing.elems[++traversing.top] = info; + traversing.elems[++traversing.next] = info; break; } use++; } if (*use == NULL) { - printf("visited %s\n", cur->name); - traversing.elems[traversing.top--] = NULL; - visited->elems[visited->top++] = cur; + traversing.elems[traversing.next--] = NULL; + visited->elems[visited->next++] = cur; } - } while (traversing.top != -1); + } while (traversing.next != -1); } Object module_find(VmState state, const char *name) {