[Scummvm-cvs-logs] SF.net SVN: scummvm:[40687] scummvm/trunk/engines/sci/engine
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Mon May 18 14:35:42 CEST 2009
Revision: 40687
http://scummvm.svn.sourceforge.net/scummvm/?rev=40687&view=rev
Author: fingolfin
Date: 2009-05-18 12:35:42 +0000 (Mon, 18 May 2009)
Log Message:
-----------
SCI: Fixed Table::initTable to invoke _table.clear()
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/seg_manager.cpp
scummvm/trunk/engines/sci/engine/vm.h
Modified: scummvm/trunk/engines/sci/engine/seg_manager.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-05-18 12:35:18 UTC (rev 40686)
+++ scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-05-18 12:35:42 UTC (rev 40687)
@@ -906,7 +906,6 @@
if (!Clones_seg_id) {
table = (CloneTable *)allocNonscriptSegment(MEM_OBJ_CLONES, &(Clones_seg_id));
- table->initTable();
} else
table = (CloneTable *)_heap[Clones_seg_id];
@@ -920,11 +919,9 @@
ListTable *table;
int offset;
- if (!Lists_seg_id) {
- table = (ListTable *)allocNonscriptSegment(MEM_OBJ_LISTS, &(Lists_seg_id));
- table->initTable();
- } else
- table = (ListTable *)_heap[Lists_seg_id];
+ if (!Lists_seg_id)
+ allocNonscriptSegment(MEM_OBJ_LISTS, &(Lists_seg_id));
+ table = (ListTable *)_heap[Lists_seg_id];
offset = table->allocEntry();
@@ -936,11 +933,9 @@
NodeTable *table;
int offset;
- if (!Nodes_seg_id) {
- table = (NodeTable *)allocNonscriptSegment(MEM_OBJ_NODES, &(Nodes_seg_id));
- table->initTable();
- } else
- table = (NodeTable *)_heap[Nodes_seg_id];
+ if (!Nodes_seg_id)
+ allocNonscriptSegment(MEM_OBJ_NODES, &(Nodes_seg_id));
+ table = (NodeTable *)_heap[Nodes_seg_id];
offset = table->allocEntry();
@@ -952,11 +947,9 @@
HunkTable *table;
int offset;
- if (!Hunks_seg_id) {
- table = (HunkTable *)allocNonscriptSegment(MEM_OBJ_HUNK, &(Hunks_seg_id));
- table->initTable();
- } else
- table = (HunkTable *)_heap[Hunks_seg_id];
+ if (!Hunks_seg_id)
+ allocNonscriptSegment(MEM_OBJ_HUNK, &(Hunks_seg_id));
+ table = (HunkTable *)_heap[Hunks_seg_id];
offset = table->allocEntry();
Modified: scummvm/trunk/engines/sci/engine/vm.h
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.h 2009-05-18 12:35:18 UTC (rev 40686)
+++ scummvm/trunk/engines/sci/engine/vm.h 2009-05-18 12:35:42 UTC (rev 40687)
@@ -521,13 +521,13 @@
public:
Table() {
- entries_used = 0;
- first_free = HEAPENTRY_INVALID;
+ initTable();
}
void initTable() {
entries_used = 0;
first_free = HEAPENTRY_INVALID;
+ _table.clear();
}
int allocEntry() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list