start out with an empty array of file handles, so the Enginestates matches between startup and restart. really check its size before accessing it (fixes LSL3 restart)

svn-id: r38915
This commit is contained in:
Andre Heider 2009-02-26 21:17:53 +00:00
parent f8648767e4
commit 2d1fd81f90
2 changed files with 7 additions and 5 deletions

View file

@ -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;