diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/c++11-compat.h | 2 | ||||
-rw-r--r-- | common/recorderfile.cpp | 2 | ||||
-rw-r--r-- | common/winexe_ne.cpp | 2 | ||||
-rw-r--r-- | common/winexe_ne.h | 2 | ||||
-rw-r--r-- | common/zlib.cpp | 22 |
5 files changed, 23 insertions, 7 deletions
diff --git a/common/c++11-compat.h b/common/c++11-compat.h index 50d79bd79e..f963ba9ac8 100644 --- a/common/c++11-compat.h +++ b/common/c++11-compat.h @@ -31,7 +31,9 @@ // Custom nullptr replacement. This is not type safe as the real C++11 nullptr // though. // +#if !defined(nullptr) // XCode 5.0.1 has __cplusplus=199711 but defines this #define nullptr 0 +#endif // // Replacement for the override keyword. This allows compilation of code diff --git a/common/recorderfile.cpp b/common/recorderfile.cpp index d08bc599f1..7c438cbf69 100644 --- a/common/recorderfile.cpp +++ b/common/recorderfile.cpp @@ -45,6 +45,8 @@ PlaybackFile::PlaybackFile() : _tmpRecordFile(_tmpBuffer, kRecordBuffSize), _tmp _recordCount = 0; _eventsSize = 0; memset(_tmpBuffer, 1, kRecordBuffSize); + + _playbackParseState = kFileStateCheckFormat; } PlaybackFile::~PlaybackFile() { diff --git a/common/winexe_ne.cpp b/common/winexe_ne.cpp index c3698d5fce..8ab7e707bb 100644 --- a/common/winexe_ne.cpp +++ b/common/winexe_ne.cpp @@ -187,7 +187,7 @@ uint32 NEResources::getResourceTableOffset() { static const char *s_resTypeNames[] = { "", "cursor", "bitmap", "icon", "menu", "dialog", "string", "font_dir", "font", "accelerator", "rc_data", "msg_table", - "group_cursor", "group_icon", "", "", "version", "dlg_include", + "group_cursor", "", "group_icon", "", "version", "dlg_include", "", "plug_play", "vxd", "ani_cursor", "ani_icon", "html", "manifest" }; diff --git a/common/winexe_ne.h b/common/winexe_ne.h index f00941412f..3f50b5cc54 100644 --- a/common/winexe_ne.h +++ b/common/winexe_ne.h @@ -46,7 +46,7 @@ enum NEResourceType { kNERCData = 0x0A, kNEMessageTable = 0x0B, kNEGroupCursor = 0x0C, - kNEGroupIcon = 0x0D, + kNEGroupIcon = 0x0E, kNEVersion = 0x10, kNEDlgInclude = 0x11, kNEPlugPlay = 0x13, diff --git a/common/zlib.cpp b/common/zlib.cpp index 920338e57e..f1a298a9f1 100644 --- a/common/zlib.cpp +++ b/common/zlib.cpp @@ -27,6 +27,7 @@ #include "common/ptr.h" #include "common/util.h" #include "common/stream.h" +#include "common/textconsole.h" #if defined(USE_ZLIB) #ifdef __SYMBIAN32__ @@ -158,10 +159,11 @@ protected: uint32 _pos; uint32 _origSize; bool _eos; + bool _shownBackwardSeekingWarning; public: - GZipReadStream(SeekableReadStream *w, uint32 knownSize = 0) : _wrapped(w), _stream() { + GZipReadStream(SeekableReadStream *w, uint32 knownSize = 0) : _wrapped(w), _stream(), _shownBackwardSeekingWarning(false) { assert(w != 0); // Verify file header is correct @@ -241,13 +243,17 @@ public: } bool seek(int32 offset, int whence = SEEK_SET) { int32 newPos = 0; - assert(whence != SEEK_END); // SEEK_END not supported switch (whence) { case SEEK_SET: newPos = offset; break; case SEEK_CUR: newPos = _pos + offset; + break; + case SEEK_END: + // NOTE: This can be an expensive operation (see below). + newPos = size() + offset; + break; } assert(newPos >= 0); @@ -256,9 +262,15 @@ public: // To search backward, we have to restart the whole decompression // from the start of the file. A rather wasteful operation, best // to avoid it. :/ -#if DEBUG - warning("Backward seeking in GZipReadStream detected"); -#endif + + if (!_shownBackwardSeekingWarning) { + // We only throw this warning once per stream, to avoid + // getting the console swarmed with warnings when consecutive + // seeks are made. + warning("Backward seeking in GZipReadStream detected"); + _shownBackwardSeekingWarning = true; + } + _pos = 0; _wrapped->seek(0, SEEK_SET); _zlibErr = inflateReset(&_stream); |