diff options
Diffstat (limited to 'engines/sci/engine/kfile.cpp')
-rw-r--r-- | engines/sci/engine/kfile.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp index 7638bab28a..4c615ff6b4 100644 --- a/engines/sci/engine/kfile.cpp +++ b/engines/sci/engine/kfile.cpp @@ -379,12 +379,16 @@ void file_open(EngineState *s, char *filename, int mode) { return; } - uint retval = 1; // Ignore _fileHandles[0] + uint retval = 0; while ((retval < s->_fileHandles.size()) && s->_fileHandles[retval]._file) retval++; - if (retval == s->_fileHandles.size()) { // Hit size limit => Allocate more space - s->_fileHandles.resize(s->_fileHandles.size() + 1); + // Ignore _fileHandles[0] + if (retval < 1) + retval = 1; + + if (retval >= s->_fileHandles.size()) { // Hit size limit => Allocate more space + s->_fileHandles.resize(retval + 1); } s->_fileHandles[retval]._file = file; |