[Scummvm-cvs-logs] SF.net SVN: scummvm:[44128] scummvm/trunk/engines/sci/engine

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Thu Sep 17 01:55:12 CEST 2009


Revision: 44128
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44128&view=rev
Author:   fingolfin
Date:     2009-09-16 23:55:11 +0000 (Wed, 16 Sep 2009)

Log Message:
-----------
SCI: cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/kmisc.cpp
    scummvm/trunk/engines/sci/engine/seg_manager.h

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-09-16 23:55:11 UTC (rev 44128)
@@ -632,11 +632,10 @@
 		return type;
 	}
 
-	if ((reg.segment >= segMan->_heap.size()) || !segMan->_heap[reg.segment])
+	mobj = segMan->getMemObject(reg.segment);
+	if (!mobj)
 		return 0; // Invalid
 
-	mobj = segMan->_heap[reg.segment];
-
 	SciVersion version = segMan->sciVersion();	// for the offset defines
 
 	switch (mobj->getType()) {

Modified: scummvm/trunk/engines/sci/engine/kmisc.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmisc.cpp	2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/kmisc.cpp	2009-09-16 23:55:11 UTC (rev 44128)
@@ -204,7 +204,7 @@
 			warning("Attempt to peek invalid memory at %04x:%04x", PRINT_REG(argv[1]));
 			return s->r_acc;
 		}
-		if (s->segMan->_heap[argv[1].segment]->getType() == MEM_OBJ_LOCALS)
+		if (s->segMan->getMemObjectType(argv[1].segment) == MEM_OBJ_LOCALS)
 			return *((reg_t *) ref);
 		else
 			return make_reg(0, (int16)READ_LE_UINT16(ref));
@@ -218,7 +218,7 @@
 			return s->r_acc;
 		}
 
-		if (s->segMan->_heap[argv[1].segment]->getType() == MEM_OBJ_LOCALS)
+		if (s->segMan->getMemObjectType(argv[1].segment) == MEM_OBJ_LOCALS)
 			*((reg_t *) ref) = argv[2];
 		else {
 			if (argv[2].segment) {

Modified: scummvm/trunk/engines/sci/engine/seg_manager.h
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.h	2009-09-16 23:32:48 UTC (rev 44127)
+++ scummvm/trunk/engines/sci/engine/seg_manager.h	2009-09-16 23:55:11 UTC (rev 44128)
@@ -46,6 +46,7 @@
 
 
 class SegManager : public Common::Serializable {
+	friend class Console;
 public:
 	/**
 	 * Initialize the segment manager.
@@ -366,16 +367,18 @@
 
 	SciVersion sciVersion() { return _resMan->sciVersion(); }
 
+public: // TODO: make private
+	Common::Array<MemObject *> _heap;
+	Common::Array<Class> _classtable; /**< Table of all classes */
+
 private:
 	/** Map script ids to segment ids. */
 	Common::HashMap<int, SegmentId> _scriptSegMap;
 
-public: // TODO: make private
-	Common::Array<MemObject *> _heap;
-	bool _exportsAreWide;
-	Common::Array<Class> _classtable; /**< Table of all classes */
 	ResourceManager *_resMan;
 
+	bool _exportsAreWide;
+
 	SegmentId Clones_seg_id; ///< ID of the (a) clones segment
 	SegmentId Lists_seg_id; ///< ID of the (a) list segment
 	SegmentId Nodes_seg_id; ///< ID of the (a) node segment


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