projects
/
henge
/
apc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
892bb35
)
simplify setcrawl
author
ken
<ken@mihrtec.com>
Sat, 21 Jan 2017 23:54:23 +0000
(15:54 -0800)
committer
ken
<ken@mihrtec.com>
Sat, 21 Jan 2017 23:54:23 +0000
(15:54 -0800)
src/ir.c
patch
|
blob
|
history
diff --git
a/src/ir.c
b/src/ir.c
index
cb5fafd
..
6355654
100644
(file)
--- a/
src/ir.c
+++ b/
src/ir.c
@@
-687,25
+687,26
@@
void crawl_class
}
\r
}
\r
\r
}
\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
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
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
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
}
\r
- --i;
\r
putchar('\n');
\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
crawl_set(iter->nextsib,i);
\r
}
\r