From c6112f738312ff6243b3fca1373d4d44ef08ee32 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 19 Apr 2011 18:08:47 +0200 Subject: COMMON: Do not call ReadStream::eos in SubReadStream::read. Instead I moved the call to ReadStream::eos into SubReadStream::eos. fuzzie pointed out that in certain cases this resulted in a lot of eos calls before. Those were rather needlessly, since checking the eos bit of the decorated stream in read does not give any advantage over checking it when the client code really wants to test the eos flag. --- common/stream.cpp | 1 - common/substream.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'common') diff --git a/common/stream.cpp b/common/stream.cpp index c0783b2352..1be3fbffea 100644 --- a/common/stream.cpp +++ b/common/stream.cpp @@ -205,7 +205,6 @@ uint32 SubReadStream::read(void *dataPtr, uint32 dataSize) { } dataSize = _parentStream->read(dataPtr, dataSize); - _eos |= _parentStream->eos(); _pos += dataSize; return dataSize; diff --git a/common/substream.h b/common/substream.h index dc49ce9ecf..4d90ec5ced 100644 --- a/common/substream.h +++ b/common/substream.h @@ -59,7 +59,7 @@ public: delete _parentStream; } - virtual bool eos() const { return _eos; } + virtual bool eos() const { return _eos | _parentStream->eos(); } virtual bool err() const { return _parentStream->err(); } virtual void clearErr() { _eos = false; _parentStream->clearErr(); } virtual uint32 read(void *dataPtr, uint32 dataSize); -- cgit v1.2.3