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:
parent
f8648767e4
commit
2d1fd81f90
2 changed files with 7 additions and 5 deletions
|
@ -528,8 +528,6 @@ EngineState::EngineState() {
|
|||
|
||||
kernel_opt_flags = 0;
|
||||
|
||||
_fileHandles.resize(5);
|
||||
|
||||
dirseeker = 0;
|
||||
|
||||
execution_stack = 0;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue