diff options
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/dataio.cpp | 6 | ||||
-rw-r--r-- | engines/gob/save/savehandler.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/engines/gob/dataio.cpp b/engines/gob/dataio.cpp index 78fc0ab3c1..aa2743b5ed 100644 --- a/engines/gob/dataio.cpp +++ b/engines/gob/dataio.cpp @@ -26,6 +26,7 @@ #include "common/endian.h" #include "common/types.h" #include "common/memstream.h" +#include "common/substream.h" #include "gob/gob.h" #include "gob/dataio.h" @@ -345,9 +346,8 @@ Common::SeekableReadStream *DataIO::getFile(File &file) { if (!file.archive->file.seek(file.offset)) return 0; - Common::SeekableReadStream *rawData = file.archive->file.readStream(file.size); - if (!rawData) - return 0; + Common::SeekableReadStream *rawData = + new Common::SafeSubReadStream(&file.archive->file, file.offset, file.offset + file.size); if (!file.packed) return rawData; diff --git a/engines/gob/save/savehandler.cpp b/engines/gob/save/savehandler.cpp index 8cb8274402..21102ae786 100644 --- a/engines/gob/save/savehandler.cpp +++ b/engines/gob/save/savehandler.cpp @@ -113,8 +113,8 @@ void SlotFileIndexed::buildIndex(byte *buffer, SavePartInfo &info, if (setLongest) { uint32 slot0Len; for (slot0Len = strlen((const char *) bufferStart); slot0Len < longest; slot0Len++) - buffer[slot0Len] = ' '; - buffer[slot0Len] = '\0'; + bufferStart[slot0Len] = ' '; + bufferStart[slot0Len] = '\0'; } } |