aboutsummaryrefslogtreecommitdiff
path: root/cfg.c
diff options
context:
space:
mode:
Diffstat (limited to 'cfg.c')
-rw-r--r--cfg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/cfg.c b/cfg.c
index 406c307..89928d5 100644
--- a/cfg.c
+++ b/cfg.c
@@ -108,7 +108,10 @@ fillrpo(Fn *f)
b->id = -1u;
n = 1 + rporec(f->start, f->nblk-1);
f->nblk -= n;
- f->rpo = alloc(f->nblk * sizeof f->rpo[0]);
+ if (f->rpo)
+ vgrow(&f->rpo, f->nblk);
+ else
+ f->rpo = vnew(f->nblk, sizeof f->rpo[0], PFn);
for (p=&f->start; (b=*p);) {
if (b->id == -1u) {
edgedel(b, &b->s1);