diff options
author | vng <viktor.govako@gmail.com> | 2013-10-11 20:57:25 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:03:29 +0300 |
commit | 56f90e5b925aa8340b7b8dc0cf38015567140e39 (patch) | |
tree | bc1d82f25ced6ad8787f4961a8bd5332e1a4bed8 /coding/reader.hpp | |
parent | 6647889475a48b2b7af842d7c1e87a1a3698013e (diff) |
Remove throwing SourceOutOfBoundsException due to runtime overhead (checked in iOS profiler).
Diffstat (limited to 'coding/reader.hpp')
-rw-r--r-- | coding/reader.hpp | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/coding/reader.hpp b/coding/reader.hpp index 6e2a106034..25dd91218b 100644 --- a/coding/reader.hpp +++ b/coding/reader.hpp @@ -1,6 +1,5 @@ #pragma once #include "endianness.hpp" -#include "source.hpp" #include "../base/assert.hpp" #include "../base/logging.hpp" @@ -180,23 +179,10 @@ public: void Read(void * p, size_t size) { - uint64_t const readerSize = m_reader.Size(); - if (m_pos + size > readerSize) - { - size_t remainingSize = 0; - if (readerSize >= m_pos) - { - remainingSize = static_cast<size_t>(readerSize - m_pos); - m_reader.Read(m_pos, p, remainingSize); - m_pos = readerSize; - } - MYTHROW1(SourceOutOfBoundsException, remainingSize, ()); - } - else - { - m_reader.Read(m_pos, p, size); - m_pos += size; - } + ASSERT(m_pos + size <= m_reader.Size(), (m_pos, size, m_reader.Size())); + + m_reader.Read(m_pos, p, size); + m_pos += size; } void Skip(uint64_t size) |