[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