InputStream: make Seek() always absolute

Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
This commit is contained in:
Max Kellermann
2014-05-22 10:10:16 +02:00
parent 374c6a27db
commit 07b93dcf80
28 changed files with 184 additions and 127 deletions

View File

@@ -175,7 +175,7 @@ struct CurlInputStream final : public InputStream {
}
size_t Read(void *ptr, size_t size, Error &error) override;
bool Seek(offset_type offset, int whence, Error &error) override;
bool Seek(offset_type offset, Error &error) override;
};
class CurlMulti;
@@ -887,12 +887,11 @@ CurlInputStream::InitEasy(Error &error)
}
inline bool
CurlInputStream::Seek(InputPlugin::offset_type new_offset, int whence,
Error &error)
CurlInputStream::Seek(offset_type new_offset, Error &error)
{
assert(IsReady());
if (whence == SEEK_SET && new_offset == offset)
if (new_offset == offset)
/* no-op */
return true;
@@ -901,26 +900,6 @@ CurlInputStream::Seek(InputPlugin::offset_type new_offset, int whence,
/* calculate the absolute offset */
switch (whence) {
case SEEK_SET:
break;
case SEEK_CUR:
new_offset += offset;
break;
case SEEK_END:
if (size < 0)
/* stream size is not known */
return false;
new_offset += size;
break;
default:
return false;
}
if (new_offset < 0)
return false;