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; magic[i] = (char)tmpchar;
} }
get_magicver05(control, magic); get_magicver05(control, magic);
control->in_relofs = 24;
if (control->major_version == 0 && control->minor_version > 5) { if (control->major_version == 0 && control->minor_version > 5) {
for (i = 24; i < MAGIC_LEN; i++) { 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"); failure("Reached end of file on STDIN prematurely on v06 magic read\n");
magic[i] = (char)tmpchar; 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) void clear_tmpinbuf(rzip_control *control)
{ {
control->in_relofs += control->in_len;
control->in_len = control->in_ofs = 0; control->in_len = control->in_ofs = 0;
} }

View file

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

View file

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