[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