Relative offset is not required in tmp inbuf, it can be safely zeroed.

This commit is contained in:
ckolivas 2011-03-15 11:21:26 +11:00
parent cb1f630fe0
commit 65a681a254
4 changed files with 3 additions and 8 deletions

View file

@ -387,7 +387,6 @@ static void read_tmpinmagic(rzip_control *control)
magic[i] = (char)tmpchar;
}
get_magicver05(control, magic);
control->in_relofs = 24;
if (control->major_version == 0 && control->minor_version > 5) {
for (i = 24; i < MAGIC_LEN; i++) {
@ -396,7 +395,6 @@ static void read_tmpinmagic(rzip_control *control)
failure("Reached end of file on STDIN prematurely on v06 magic read\n");
magic[i] = (char)tmpchar;
}
control->in_relofs = MAGIC_LEN;
}
}
@ -451,7 +449,6 @@ static void open_tmpinbuf(rzip_control *control)
void clear_tmpinbuf(rzip_control *control)
{
control->in_relofs += control->in_len;
control->in_len = control->in_ofs = 0;
}

View file

@ -171,7 +171,6 @@ struct rzip_control {
i64 in_ofs;
i64 in_len;
i64 in_maxlen;
i64 in_relofs;
FILE *msgout; //stream for output messages
const char *suffix;
int compression_level;

View file

@ -112,7 +112,7 @@ static i64 seekcur_fdin(struct rzip_control *control)
{
if (!TMP_INBUF)
return lseek(control->fd_in, 0, SEEK_CUR);
return (control->in_relofs + control->in_ofs);
return control->in_ofs;
}
static i64 read_header(rzip_control *control, void *ss, uchar *head)

View file

@ -699,7 +699,7 @@ static i64 seekto_fdin(rzip_control *control, i64 pos)
{
if (!TMP_INBUF)
return lseek(control->fd_in, pos, SEEK_SET);
control->in_ofs = pos - control->in_relofs;
control->in_ofs = pos;
if (unlikely(control->in_ofs > control->in_len || control->in_ofs < 0)) {
print_err("Tried to seek outside of in_ofs range in seekto_fdin\n");
return -1;
@ -843,7 +843,6 @@ static int read_seekto(rzip_control *control, struct stream_info *sinfo, i64 pos
i64 spos = pos + sinfo->initial_pos;
if (TMP_INBUF) {
spos -= control->in_relofs;
if (spos > control->in_len)
read_fdin(control, spos - control->in_len);
control->in_ofs = spos;
@ -874,7 +873,7 @@ static i64 get_readseek(rzip_control *control, int fd)
i64 ret;
if (TMP_INBUF)
return control->in_relofs + control->in_ofs;
return control->in_ofs;
ret = lseek(fd, 0, SEEK_CUR);
if (unlikely(ret == -1))
fatal("Failed to lseek in get_seek\n");