[Scummvm-cvs-logs] SF.net SVN: scummvm:[51845] scummvm/branches/gsoc2010-plugins/backends/ plugins
toneman1138 at users.sourceforge.net
toneman1138 at users.sourceforge.net
Sun Aug 8 00:27:23 CEST 2010
Revision: 51845
http://scummvm.svn.sourceforge.net/scummvm/?rev=51845&view=rev
Author: toneman1138
Date: 2010-08-07 22:27:23 +0000 (Sat, 07 Aug 2010)
Log Message:
-----------
refined constructors, removed destructors, got rid of unneccessary method duplication in DLObject and its subtypes
Modified Paths:
--------------
scummvm/branches/gsoc2010-plugins/backends/plugins/arm-loader.h
scummvm/branches/gsoc2010-plugins/backends/plugins/ds/ds-provider.cpp
scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h
scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.cpp
scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.h
scummvm/branches/gsoc2010-plugins/backends/plugins/mips-loader.h
scummvm/branches/gsoc2010-plugins/backends/plugins/ps2/ps2-provider.cpp
scummvm/branches/gsoc2010-plugins/backends/plugins/psp/psp-provider.cpp
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/arm-loader.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/arm-loader.h 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/arm-loader.h 2010-08-07 22:27:23 UTC (rev 51845)
@@ -33,14 +33,5 @@
bool relocateRels(Common::SeekableReadStream* DLFile, Elf32_Ehdr *ehdr, Elf32_Shdr *shdr);
public:
- ARMDLObject() {
- _segment = NULL;
- _symtab = NULL;
- _strtab = NULL;
- _symbol_cnt = 0;
- _symtab_sect = -1;
- _dtors_start = NULL;
- _dtors_end = NULL;
- _segmentSize = 0;
- }
+ ARMDLObject() : DLObject() {}
};
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/ds/ds-provider.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/ds/ds-provider.cpp 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/ds/ds-provider.cpp 2010-08-07 22:27:23 UTC (rev 51845)
@@ -32,43 +32,11 @@
class DSPlugin : public ELFPlugin {
public:
- DSPlugin(const Common::String &filename) {
- _dlHandle = 0;
- _filename = filename;
- }
+ DSPlugin(const Common::String &filename) : ELFPlugin(filename) {}
- ~DSPlugin() {
- if (_dlHandle)
- unloadPlugin();
- }
-
- bool loadPlugin();
+ DLObject *makeDLObject() { return new ARMDLObject(); }
};
-bool DSPlugin::loadPlugin() {
- assert(!_dlHandle);
- DLObject *obj = new ARMDLObject();
- if (obj->open(_filename.c_str())) {
- _dlHandle = obj;
- } else {
- delete obj;
- _dlHandle = NULL;
- }
-
- if (!_dlHandle) {
- warning("Failed loading plugin '%s'", _filename.c_str());
- return false;
- }
-
- bool ret = DynamicPlugin::loadPlugin();
-
- if (ret && _dlHandle) {
- _dlHandle->discard_symtab();
- }
-
- return ret;
-};
-
Plugin* DSPluginProvider::createPlugin(const Common::FSNode &node) const {
return new DSPlugin(node.getPath());
}
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/elf-loader.h 2010-08-07 22:27:23 UTC (rev 51845)
@@ -60,6 +60,8 @@
void *symbol(const char *name);
void discard_symtab();
+ DLObject() : _segment(NULL), _symtab(NULL), _strtab(NULL), _symbol_cnt(0),
+ _symtab_sect(-1), _dtors_start(NULL), _dtors_end(NULL), _segmentSize(0) {}
};
#endif /* ELF_LOADER_H */
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.cpp 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.cpp 2010-08-07 22:27:23 UTC (rev 51845)
@@ -58,6 +58,30 @@
return tmp;
}
+bool ELFPlugin::loadPlugin() {
+ assert(!_dlHandle);
+ DLObject *obj = makeDLObject();
+ if (obj->open(_filename.c_str())) {
+ _dlHandle = obj;
+ } else {
+ delete obj;
+ _dlHandle = NULL;
+ }
+
+ if (!_dlHandle) {
+ warning("Failed loading plugin '%s'", _filename.c_str());
+ return false;
+ }
+
+ bool ret = DynamicPlugin::loadPlugin();
+
+ if (ret && _dlHandle) {
+ _dlHandle->discard_symtab();
+ }
+
+ return ret;
+};
+
void ELFPlugin::unloadPlugin() {
DynamicPlugin::unloadPlugin();
if (_dlHandle) {
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.h 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/elf-provider.h 2010-08-07 22:27:23 UTC (rev 51845)
@@ -42,9 +42,6 @@
virtual VoidFunc findSymbol(const char *symbol);
public:
- ELFPlugin() {
- }
-
ELFPlugin(const Common::String &filename)
: _dlHandle(0), _filename(filename) {}
@@ -53,7 +50,9 @@
unloadPlugin();
}
- virtual bool loadPlugin() = 0;
+ virtual DLObject *makeDLObject() = 0;
+
+ bool loadPlugin();
void unloadPlugin();
};
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/mips-loader.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/mips-loader.h 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/mips-loader.h 2010-08-07 22:27:23 UTC (rev 51845)
@@ -39,15 +39,7 @@
void unload();
public:
- MIPSDLObject() {
- _segment = NULL;
- _symtab = NULL;
- _strtab = NULL;
- _symbol_cnt = 0;
- _symtab_sect = -1;
- _dtors_start = NULL;
- _dtors_end = NULL;
- _segmentSize = 0;
+ MIPSDLObject() : DLObject() {
_shortsSegment = NULL;
_gpVal = 0;
}
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/ps2/ps2-provider.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/ps2/ps2-provider.cpp 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/ps2/ps2-provider.cpp 2010-08-07 22:27:23 UTC (rev 51845)
@@ -32,43 +32,11 @@
class PS2Plugin : public ELFPlugin {
public:
- PS2Plugin(const Common::String &filename) {
- _dlHandle = 0;
- _filename = filename;
- }
+ PS2Plugin(const Common::String &filename) : ELFPlugin(filename) {}
- ~PS2Plugin() {
- if (_dlHandle)
- unloadPlugin();
- }
-
- bool loadPlugin();
+ DLObject *makeDLObject() { return new MIPSDLObject(); }
};
-bool PS2Plugin::loadPlugin() {
- assert(!_dlHandle);
- DLObject *obj = new MIPSDLObject();
- if (obj->open(_filename.c_str())) {
- _dlHandle = obj;
- } else {
- delete obj;
- _dlHandle = NULL;
- }
-
- if (!_dlHandle) {
- warning("Failed loading plugin '%s'", _filename.c_str());
- return false;
- }
-
- bool ret = DynamicPlugin::loadPlugin();
-
- if (ret && _dlHandle) {
- _dlHandle->discard_symtab();
- }
-
- return ret;
-};
-
Plugin* PS2PluginProvider::createPlugin(const Common::FSNode &node) const {
return new PS2Plugin(node.getPath());
}
Modified: scummvm/branches/gsoc2010-plugins/backends/plugins/psp/psp-provider.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/plugins/psp/psp-provider.cpp 2010-08-07 22:20:28 UTC (rev 51844)
+++ scummvm/branches/gsoc2010-plugins/backends/plugins/psp/psp-provider.cpp 2010-08-07 22:27:23 UTC (rev 51845)
@@ -32,43 +32,11 @@
class PSPPlugin : public ELFPlugin {
public:
- PSPPlugin(const Common::String &filename) {
- _dlHandle = 0;
- _filename = filename;
- }
+ PSPPlugin(const Common::String &filename) : ELFPlugin(filename) {}
- ~PSPPlugin() {
- if (_dlHandle)
- unloadPlugin();
- }
-
- bool loadPlugin();
+ DLObject *makeDLObject() { return new MIPSDLObject(); }
};
-bool PSPPlugin::loadPlugin() {
- assert(!_dlHandle);
- DLObject *obj = new MIPSDLObject();
- if (obj->open(_filename.c_str())) {
- _dlHandle = obj;
- } else {
- delete obj;
- _dlHandle = NULL;
- }
-
- if (!_dlHandle) {
- warning("Failed loading plugin '%s'", _filename.c_str());
- return false;
- }
-
- bool ret = DynamicPlugin::loadPlugin();
-
- if (ret && _dlHandle) {
- _dlHandle->discard_symtab();
- }
-
- return ret;
-};
-
Plugin* PSPPluginProvider::createPlugin(const Common::FSNode &node) const {
return new PSPPlugin(node.getPath());
}
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