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 */ |