}\r
}\r
\r
+#define push_setp(setp) (*(struct ir_set_t**)stack_alloc(sizeof(struct ir_set_t*)) = setp)\r
+#define pop_setp() (*(struct ir_set_t**)pagelist_pop(&datapages, sizeof(struct ir_set_t*)))\r
static\r
void crawl_set\r
( struct ir_set_t* set,\r
int depth\r
)\r
-{ struct ir_set_t* setlist[64], ** slp, * iter;\r
- int i = depth * 12;\r
+{ struct ir_set_t* iter;\r
+ int i;\r
+ i = depth * 12;\r
while (i--)\r
putchar('.');\r
i = depth;\r
- slp = setlist;\r
for(iter = set; iter != NULL; iter = iter->nextchild)\r
{ uprintf("[%10U]", iter->name);\r
- *slp++ = iter;\r
+ push_setp(iter);\r
i++;\r
}\r
- --i;\r
putchar('\n');\r
- for(iter = *--slp; slp >= setlist; iter = *--slp, --i)\r
- if (iter->nextsib != NULL)\r
+ while (--i >= depth)\r
+ if (((iter = pop_setp())->nextsib) != NULL)\r
crawl_set(iter->nextsib,i);\r
}\r