diff options
Diffstat (limited to 'src/cmd/acme/rows.c')
-rw-r--r-- | src/cmd/acme/rows.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/acme/rows.c b/src/cmd/acme/rows.c index 11014c2c..9fa54248 100644 --- a/src/cmd/acme/rows.c +++ b/src/cmd/acme/rows.c @@ -663,12 +663,12 @@ rowload(Row *row, char *file, int initing) break; wincleartag(w); textinsert(&w->tag, w->tag.file->b.nc, r+n+1, nr-(n+1), TRUE); - free(r); if(ndumped >= 0){ /* simplest thing is to put it in a file and load that */ sprint(buf, "/tmp/d%d.%.4sacme", getpid(), getuser()); fd = create(buf, OWRITE|ORCLOSE, 0600); if(fd < 0){ + free(r); warning(nil, "can't create temp file: %r\n"); goto Rescue2; } @@ -679,6 +679,7 @@ rowload(Row *row, char *file, int initing) if(rune == '\n') line++; if(rune == (Rune)Beof){ + free(r); Bterm(bout); free(bout); close(fd); @@ -696,6 +697,7 @@ rowload(Row *row, char *file, int initing) winsettag(w); }else if(dumpid==0 && r[ns+1]!='+' && r[ns+1]!='-') get(&w->body, nil, nil, FALSE, XXX, nil, 0); + free(r); if(fontr){ fontx(&w->body, nil, nil, 0, 0, fontr, nfontr); free(fontr); |