| 166 |
|
biglob(hp)->nrd = rtrunc = 0; |
| 167 |
|
for (n = hproto == NULL ? nbeams(hp) : 0; n > 0; n--) |
| 168 |
|
if (hp->bi[n].nrd) |
| 169 |
< |
if (hp->bi[n].fo + hp->bi[n].nrd > fpos) { |
| 169 |
> |
if (hp->bi[n].fo+hp->bi[n].nrd*sizeof(RAYVAL) > fpos) { |
| 170 |
|
rtrunc += hp->bi[n].nrd; |
| 171 |
|
hp->bi[n].nrd = 0; |
| 172 |
|
} else |
| 743 |
|
return; |
| 744 |
|
} |
| 745 |
|
/* flush all data and free memory */ |
| 746 |
< |
hdflush(hp); |
| 746 |
> |
hdfreebeam(hp, 0); |
| 747 |
> |
hdsync(hp, 0); |
| 748 |
|
/* release fragment resources */ |
| 749 |
|
hdrelease(hp->fd); |
| 750 |
|
/* remove hp from active list */ |