From 6794d53aba49f8a7c27535e15b5b8d7de60551ee Mon Sep 17 00:00:00 2001 From: Marcus Comstedt <marcus@mc.pp.se> Date: Tue, 15 Apr 2003 15:42:34 +0200 Subject: [PATCH] Optimized seek in read mode. Rev: src/modules/Gz/module.pmod.in:1.11 --- src/modules/Gz/module.pmod.in | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/modules/Gz/module.pmod.in b/src/modules/Gz/module.pmod.in index 05d75a3350..cf7519d81f 100644 --- a/src/modules/Gz/module.pmod.in +++ b/src/modules/Gz/module.pmod.in @@ -1,4 +1,4 @@ -// $Id: module.pmod.in,v 1.10 2003/04/15 13:39:31 marcus Exp $ +// $Id: module.pmod.in,v 1.11 2003/04/15 13:42:34 marcus Exp $ #pike __REAL_VERSION__ inherit @module@; @@ -201,11 +201,14 @@ class _file { pos += file_pos; if(pos < 0) return -1; - if(!f->seek || f->seek(0)<0) - return -1; - file_pos = 0; - read_buf = ""; - crc = crc32(""); + if(pos < file_pos) { + if(!f->seek || f->seek(0)<0) + return -1; + file_pos = 0; + read_buf = ""; + crc = crc32(""); + } else + pos -= file_pos; while(pos > 0) { string r = read(pos>16384? 16384:pos); if(!sizeof(r)) -- GitLab