diff options
author | yexo <yexo@openttd.org> | 2009-03-09 23:08:23 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2009-03-09 23:08:23 +0000 |
commit | 03bb87c6b801ab0b201fafd7d5e9a68f26383492 (patch) | |
tree | b2aa3c1daf3c06c5f8875896ce34144e127806ca /src | |
parent | 4a6a30cc52d263614573b56257555f5e1e44b596 (diff) | |
download | openttd-03bb87c6b801ab0b201fafd7d5e9a68f26383492.tar.xz |
(svn r15659) -Fix [Squirrel]: The garbage collection would sometimes loop (2^32 - small_value) times instead of only small_value times.
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/squirrel/squirrel/sqstate.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/3rdparty/squirrel/squirrel/sqstate.cpp b/src/3rdparty/squirrel/squirrel/sqstate.cpp index 553262543..52cea8a4c 100644 --- a/src/3rdparty/squirrel/squirrel/sqstate.cpp +++ b/src/3rdparty/squirrel/squirrel/sqstate.cpp @@ -189,6 +189,7 @@ SQSharedState::~SQSharedState() SQCollectable *t = _gc_chain; SQCollectable *nx = NULL; while(t) { + t->UnMark(); t->_uiRef++; t->Finalize(); nx = t->_next; @@ -198,7 +199,7 @@ SQSharedState::~SQSharedState() } // assert(_gc_chain==NULL); //just to proove a theory while(_gc_chain){ - _gc_chain->_uiRef++; + _gc_chain->_uiRef--; _gc_chain->Release(); } #endif |