[Scummvm-cvs-logs] CVS: scummvm/scumm/smush chunk.cpp,1.27,1.28 chunk.h,1.14,1.15

Max Horn fingolfin at users.sourceforge.net
Mon Jun 28 15:35:02 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25360/scumm/smush

Modified Files:
	chunk.cpp chunk.h 
Log Message:
Added simple ref-counting to the File class

Index: chunk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/chunk.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- chunk.cpp	27 Jun 2004 21:52:24 -0000	1.27
+++ chunk.cpp	28 Jun 2004 22:34:22 -0000	1.28
@@ -28,33 +28,6 @@
 
 namespace Scumm {
 
-class FilePtr : public File {
-	Common::String _filename;
-	int32 _refcount;
-public:
-	FilePtr(const char *fname) :
-		_filename(fname),
-		_refcount(1) {
-			debug(9, "FilePtr created for %s", fname);
-			open(fname);
-			if (isOpen() == false)
-				error("FilePtr unable to read file %s", fname);
-		}
-
-	~FilePtr() {
-		debug(9, "FilePtr destroyed for %s", _filename.c_str());
-	}
-
-	void incRef() {
-		_refcount++;
-	}
-
-	void decRef() {
-		if (--_refcount == 0)
-			delete this;
-	}
-};
-
 const char *Chunk::ChunkString(Chunk::type t) {
 	static char data[5];
 	data[0] = (char)((t >> 24) & 0xFF);
@@ -116,7 +89,10 @@
 }
 
 FileChunk::FileChunk(const char *fname) {
-	_data = new FilePtr(fname);
+	_data = new File();
+	if (!_data->open(fname))
+		error("FileChunk: Unable to open file %s", fname);
+
 	_type = _data->readUint32BE();
 	_size = _data->readUint32BE();
 	_offset = sizeof(Chunk::type) + sizeof(uint32);

Index: chunk.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/chunk.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- chunk.h	27 Jun 2004 21:52:25 -0000	1.14
+++ chunk.h	28 Jun 2004 22:34:22 -0000	1.15
@@ -24,6 +24,8 @@
 
 #include "common/scummsys.h"
 
+class File;
+
 namespace Scumm {
 
 class Chunk {
@@ -46,8 +48,6 @@
 	virtual uint32 getDword()= 0;
 };
 
-class FilePtr;
-
 // Common functionality for concrete chunks (FileChunk, MemoryChunk)
 class BaseChunk : public Chunk {
 protected:
@@ -67,7 +67,7 @@
 
 class FileChunk : public BaseChunk {
 private:
-	FilePtr *_data;
+	File *_data;
 	uint32 _offset;
 
 protected:





More information about the Scummvm-git-logs mailing list