X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Fslice.cpp;h=904f748668e472257ae383dd93330cc8fc3d4299;hb=7a493cb73ff5f5f820d4873d6c993d0e9c5a580a;hp=423c1a6c8cae85e73c2f6e15e9733786b31d700e;hpb=eedad559456b8e62ed3b9bd9e8253e5f8bcc02d6;p=libs%2Fcore.git 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);