X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fslice.cpp;h=904f748668e472257ae383dd93330cc8fc3d4299;hp=423c1a6c8cae85e73c2f6e15e9733786b31d700e;hb=acbe2ee4cea637450389bb86a3892160bb724192;hpb=959bb34629f786cd64f666029407e60bdd37d418 diff --git a/source/io/slice.cpp b/source/io/slice.cpp index 423c1a6..904f748 100644 --- a/source/io/slice.cpp +++ b/source/io/slice.cpp @@ -90,12 +90,13 @@ int Slice::get() SeekOffset Slice::seek(SeekOffset off, SeekType type) { - if(type==S_BEG) - off += start_offset; - else if(type==S_CUR) + off += start_offset; + if(type==S_CUR) off += position; else if(type==S_END) - off += start_offset+length; + off += length; + else if(type!=S_BEG) + throw invalid_argument("Slice::seek"); if(offstart_offset+length) throw bad_seek(off, type);