mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-03 09:23:37 +00:00
SWORD25: Remove redundant code
svn-id: r53378
This commit is contained in:
parent
2143afde6c
commit
f85139bbfa
@ -51,9 +51,7 @@ namespace Sword25 {
|
||||
class B25SLoader : public ImageLoader {
|
||||
public:
|
||||
static ImageLoader *CreateInstance() {
|
||||
#include "sword25/kernel/memlog_off.h"
|
||||
return static_cast<ImageLoader *>(new B25SLoader());
|
||||
#include "sword25/kernel/memlog_on.h"
|
||||
}
|
||||
|
||||
protected:
|
||||
|
@ -53,9 +53,7 @@ namespace Sword25 {
|
||||
class PNGLoader : public ImageLoader {
|
||||
public:
|
||||
static ImageLoader *CreateInstance() {
|
||||
#include "sword25/kernel/memlog_off.h"
|
||||
return (ImageLoader *) new PNGLoader();
|
||||
#include "sword25/kernel/memlog_on.h"
|
||||
}
|
||||
|
||||
// Alle virtuellen Methoden von BS_ImageLoader sind hier als static-Methode implementiert, damit sie von BS_B25SLoader aufgerufen werden können.
|
||||
|
@ -51,7 +51,6 @@
|
||||
#define BS_ACTIVATE_LOGGING // When defined, logging is activated
|
||||
|
||||
// Engine Includes
|
||||
#include "sword25/kernel/memleaks.h"
|
||||
#include "sword25/kernel/log.h"
|
||||
|
||||
#include "common/debug.h"
|
||||
|
@ -129,13 +129,6 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual Common::StringArray GetFilesInDirectory(const Common::String &Directory) {
|
||||
Common::SaveFileManager *sfm = g_system->getSavefileManager();
|
||||
Common::StringArray filenames = sfm->listSavefiles("*");
|
||||
sort(filenames.begin(), filenames.end());
|
||||
return filenames;
|
||||
}
|
||||
|
||||
virtual Common::String GetPathFilename(const Common::String &Path) {
|
||||
for (int i = Path.size() - 1; i >= 0; --i) {
|
||||
if ((Path[i] == '/') || (Path[i] == '\\')) {
|
||||
|
@ -101,12 +101,6 @@ public:
|
||||
* @return Returns true if the folder(s) could be created, otherwise false.
|
||||
*/
|
||||
virtual bool CreateDirectory(const Common::String &DirectoryName) = 0;
|
||||
/**
|
||||
* Creates a list of filenames in a given directory.
|
||||
* @param Directory The directory to search
|
||||
* @return Returns a vector containing all of the found filenames
|
||||
*/
|
||||
virtual Common::StringArray GetFilesInDirectory(const Common::String &Path) = 0;
|
||||
/**
|
||||
* Gets the filename from a path and filename
|
||||
* @param Filename The full path and filename
|
||||
|
@ -1,133 +0,0 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code is based on Broken Sword 2.5 engine
|
||||
*
|
||||
* Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
|
||||
*
|
||||
* Licensed under GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef BS_MEMLOG
|
||||
|
||||
// Die folgende Zeile stellt sicher, dass alle Objekte in dieser Datei vor allen anderen erstellt und nach allen anderen
|
||||
// zerstört werden.
|
||||
// Damit wird sichergestellt, dass z.B. Singletons nicht fälschlicherweise als Memory-Leaks erkannt werden.
|
||||
// TODO Visual C++ 8 kommt mit der aktuellen Implementation nicht klar und stürzt sowohl beim Start aus auch beim
|
||||
// Beenden ab. Es muss eine Alternativimplementation her. An sichersten ist es wohl, wenn gar keine STL-Objekte benutzt
|
||||
// werden.
|
||||
// #pragma warning (disable : 4074)
|
||||
// #pragma init_seg(compiler)
|
||||
|
||||
#include "sword25/kernel/filesystemutil.h"
|
||||
|
||||
#include "sword25/kernel/memlog_off.h"
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
typedef struct {
|
||||
uint address;
|
||||
uint size;
|
||||
std::string file;
|
||||
uint line;
|
||||
} ALLOC_INFO;
|
||||
|
||||
static const char *MEMLEAK_LOG_FILE = "memory_leaks.txt";
|
||||
static const uint BUCKET_COUNT = 1021;
|
||||
std::vector< std::vector<ALLOC_INFO> > TrackData(BUCKET_COUNT);
|
||||
|
||||
static uint TotalSize = 0;
|
||||
|
||||
// Diese Klasse stellt sicher, dass beim Programmende, das Memory-Leak Log geschrieben wird.
|
||||
static class LeakDumper {
|
||||
public:
|
||||
LeakDumper() : OutputFilename(BS_FileSystemUtil::GetInstance().GetUserdataDirectory() + "\\" + MEMLEAK_LOG_FILE) {
|
||||
// Sicherstellen, dass das Ausgabeverzeichnis für die Datei existiert.
|
||||
BS_FileSystemUtil::GetInstance().CreateDirectory(BS_FileSystemUtil::GetInstance().GetUserdataDirectory());
|
||||
}
|
||||
|
||||
~LeakDumper() {
|
||||
DumpUnfreed(OutputFilename.c_str());
|
||||
}
|
||||
|
||||
std::string OutputFilename;
|
||||
} LeakDumperInstance;
|
||||
|
||||
void DumpUnfreed(const char *OutputFilename) {
|
||||
FILE *Log = fopen(OutputFilename, "w");
|
||||
fputs("MEMORY LEAK REPORT:\n----------------------\n", Log);
|
||||
std::vector< std::vector<ALLOC_INFO> >::iterator BucketIter = TrackData.begin();
|
||||
for (; BucketIter != TrackData.end(); ++BucketIter) {
|
||||
std::vector<ALLOC_INFO>::iterator Iter = (*BucketIter).begin();
|
||||
for (; Iter != (*BucketIter).end(); ++Iter) {
|
||||
ALLOC_INFO &CurItem = (*Iter);
|
||||
fprintf(Log, "%-50s LINE:%d ADDRESS:0x%x SIZE:%d\n",
|
||||
CurItem.file.c_str(),
|
||||
CurItem.line,
|
||||
CurItem.address,
|
||||
CurItem.size);
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(Log, "----------------------\nTotal unfreed bytes: %d\n", TotalSize);
|
||||
|
||||
fclose(Log);
|
||||
}
|
||||
|
||||
void AddTrack(uint addr, uint asize, const char *fname, uint lnum) {
|
||||
std::vector<ALLOC_INFO> & CurBucket = TrackData[(addr >> 3) % BUCKET_COUNT];
|
||||
ALLOC_INFO Info;
|
||||
Info.address = addr;
|
||||
Info.size = asize;
|
||||
Info.file = fname;
|
||||
Info.line = lnum;
|
||||
CurBucket.push_back(Info);
|
||||
|
||||
TotalSize += asize;
|
||||
}
|
||||
|
||||
void RemoveTrack(uint addr) {
|
||||
if (addr != 0 && TrackData.size() == BUCKET_COUNT) {
|
||||
std::vector<ALLOC_INFO> & CurBucket = TrackData[(addr >> 3) % BUCKET_COUNT];
|
||||
std::vector<ALLOC_INFO>::iterator Iter = CurBucket.begin();
|
||||
for (; Iter != CurBucket.end(); ++Iter) {
|
||||
if ((*Iter).address == addr) {
|
||||
TotalSize -= (*Iter).size;
|
||||
|
||||
std::swap(*Iter, CurBucket.back());
|
||||
CurBucket.pop_back();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@ -1,68 +0,0 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code is based on Broken Sword 2.5 engine
|
||||
*
|
||||
* Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
|
||||
*
|
||||
* Licensed under GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SWORD25_MEMLEAKS_H
|
||||
#define SWORD25_MEMLEAKS_H
|
||||
|
||||
#ifdef BS_MEMLOG
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable : 4291)
|
||||
#endif
|
||||
|
||||
#include <malloc.h>
|
||||
|
||||
void DumpUnfreed(const char *OutputFilename);
|
||||
void AddTrack(uint addr, uint asize, const char *fname, uint lnum);
|
||||
void RemoveTrack(uint addr);
|
||||
|
||||
inline void *__cdecl operator new(uint size, const char *file, int line) {
|
||||
void *ptr = malloc(size);
|
||||
if (ptr) AddTrack((uint)ptr, size, file, line);
|
||||
return(ptr);
|
||||
};
|
||||
|
||||
inline void __cdecl operator delete(void *p) {
|
||||
RemoveTrack((uint)p);
|
||||
free(p);
|
||||
};
|
||||
|
||||
inline void __cdecl operator delete[](void *p) {
|
||||
RemoveTrack((uint)p);
|
||||
free(p);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,42 +0,0 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code is based on Broken Sword 2.5 engine
|
||||
*
|
||||
* Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
|
||||
*
|
||||
* Licensed under GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
// Deaktivieren der Memory-Leak Detektion
|
||||
|
||||
#ifdef BS_MEMLOG
|
||||
#ifdef new
|
||||
#undef new
|
||||
#undef DEBUG_NEW
|
||||
#endif
|
||||
#endif
|
@ -1,42 +0,0 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* $URL$
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This code is based on Broken Sword 2.5 engine
|
||||
*
|
||||
* Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
|
||||
*
|
||||
* Licensed under GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
// Aktivieren der Memory-Leak Detektion
|
||||
|
||||
#ifdef BS_MEMLOG
|
||||
#ifndef DEBUG_NEW
|
||||
#define DEBUG_NEW new(__FILE__, __LINE__)
|
||||
#endif
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
@ -48,7 +48,6 @@ MODULE_OBJS := \
|
||||
kernel/kernel.o \
|
||||
kernel/kernel_script.o \
|
||||
kernel/log.o \
|
||||
kernel/memleaks.o \
|
||||
kernel/outputpersistenceblock.o \
|
||||
kernel/persistenceservice.o \
|
||||
kernel/resmanager.o \
|
||||
|
Loading…
x
Reference in New Issue
Block a user