[Change] Overloaded new/delete operators.

-- Less travelling to kernal mode ftw.
This commit is contained in:
Rtch90 2012-01-05 17:11:29 +00:00
parent 72e1b90df7
commit f3fd1861bc
6 changed files with 38 additions and 19 deletions

View File

@ -1,6 +1,6 @@
############################################################################# #############################################################################
# Makefile for building: Unuk-QT # Makefile for building: Unuk-QT
# Generated by qmake (2.01a) (Qt 4.7.3) on: Sat Dec 31 00:45:11 2011 # Generated by qmake (2.01a) (Qt 4.7.3) on: Thu Jan 5 16:49:04 2012
# Project: Unuk-QT.pro # Project: Unuk-QT.pro
# Template: app # Template: app
# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro # Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile Unuk-QT.pro
@ -262,6 +262,8 @@ main.o: ../src/Unuk/main.cpp ../src/libUnuk/MainMenu.h \
../src/libUnuk/NPC.h \ ../src/libUnuk/NPC.h \
../src/libUnuk/Character.h \ ../src/libUnuk/Character.h \
../src/libUnuk/Collision.h \ ../src/libUnuk/Collision.h \
../src/libUnuk/MemClass.h \
../src/libUnuk/MemManager.h \
../src/Unuk/Game.h \ ../src/Unuk/Game.h \
../src/Unuk/Player.h \ ../src/Unuk/Player.h \
../src/libUnuk/IngameMenu.h \ ../src/libUnuk/IngameMenu.h \
@ -425,7 +427,9 @@ NPC.o: ../src/libUnuk/NPC.cpp ../src/libUnuk/NPC.h \
../src/libUnuk/MapEntities.h \ ../src/libUnuk/MapEntities.h \
../src/libUnuk/Timer.h \ ../src/libUnuk/Timer.h \
../src/libUnuk/Text.h \ ../src/libUnuk/Text.h \
../src/libUnuk/Font.h ../src/libUnuk/Font.h \
../src/libUnuk/MemClass.h \
../src/libUnuk/MemManager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o NPC.o ../src/libUnuk/NPC.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o NPC.o ../src/libUnuk/NPC.cpp
Player.o: ../src/Unuk/Player.cpp ../src/Unuk/Player.h \ Player.o: ../src/Unuk/Player.cpp ../src/Unuk/Player.h \
@ -443,7 +447,9 @@ Player.o: ../src/Unuk/Player.cpp ../src/Unuk/Player.h \
../src/libUnuk/MapEntities.h \ ../src/libUnuk/MapEntities.h \
../src/libUnuk/Timer.h \ ../src/libUnuk/Timer.h \
../src/libUnuk/Text.h \ ../src/libUnuk/Text.h \
../src/libUnuk/Font.h ../src/libUnuk/Font.h \
../src/libUnuk/MemClass.h \
../src/libUnuk/MemManager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o Player.o ../src/Unuk/Player.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o Player.o ../src/Unuk/Player.cpp
Game.o: ../src/Unuk/Game.cpp ../src/Unuk/Game.h \ Game.o: ../src/Unuk/Game.cpp ../src/Unuk/Game.h \
@ -463,6 +469,8 @@ Game.o: ../src/Unuk/Game.cpp ../src/Unuk/Game.h \
../src/libUnuk/Timer.h \ ../src/libUnuk/Timer.h \
../src/libUnuk/Text.h \ ../src/libUnuk/Text.h \
../src/libUnuk/Font.h \ ../src/libUnuk/Font.h \
../src/libUnuk/MemClass.h \
../src/libUnuk/MemManager.h \
../src/libUnuk/IngameMenu.h \ ../src/libUnuk/IngameMenu.h \
../src/libUnuk/Button.h \ ../src/libUnuk/Button.h \
../src/libUnuk/Input.h \ ../src/libUnuk/Input.h \
@ -493,8 +501,8 @@ FPS.o: ../src/libUnuk/FPS.cpp ../src/libUnuk/FPS.h \
../src/libUnuk/Timer.h ../src/libUnuk/Timer.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o FPS.o ../src/libUnuk/FPS.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o FPS.o ../src/libUnuk/FPS.cpp
MemManager.o: ../src/libUnuk/MemManager.cpp ../src/libUnuk/MemManager.h \ MemManager.o: ../src/libUnuk/MemManager.cpp ../src/libUnuk/MemClass.h \
../src/libUnuk/MemClass.h ../src/libUnuk/MemManager.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o MemManager.o ../src/libUnuk/MemManager.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o MemManager.o ../src/libUnuk/MemManager.cpp
####### Install ####### Install

Binary file not shown.

View File

@ -212,7 +212,10 @@ void Game::LoadSavegame(const string savegameIDArg) {
// <name> - Parse the player name. // <name> - Parse the player name.
dataElem = rootElem->FirstChildElement("name"); dataElem = rootElem->FirstChildElement("name");
assert(dataElem != NULL); assert(dataElem != NULL);
_player->SetName(dataElem->GetText());
// Overloaded new/delete operator takes this out of scope..
// TODO: Fix.
//_player->SetName(dataElem->GetText());
// </name> // </name>
// <x> - Parse the player x coord. // <x> - Parse the player x coord.

View File

@ -29,6 +29,9 @@ int main() {
#else #else
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
#endif #endif
Debug::openLog(true);
if(SDL_Init(SDL_INIT_VIDEO == -1)) { if(SDL_Init(SDL_INIT_VIDEO == -1)) {
system("zenity --error --text=\"Could not load SDL\""); system("zenity --error --text=\"Could not load SDL\"");
Debug::logger->message("Error: Could not load SDL"); Debug::logger->message("Error: Could not load SDL");
@ -84,18 +87,6 @@ int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) {
delete menu; delete menu;
break; break;
} }
// This is NOT going to go nicely. But I want to test this.
MemClass* array[1000];
// Allocate a shitload of memory.
for(int i = 0; i < 5000; i++) {
for(int j = 0; j < 1000; j++) {
array[j] = new MemClass(i, j);
}
// Get rid of it.
for(int j = 0; j < 1000; j++) {
delete array[j];
}
}
} }
//stringstream caption; //stringstream caption;
//caption << "Unuk - FPS: " << fps; //caption << "Unuk - FPS: " << fps;

View File

@ -6,6 +6,7 @@
#include "../Unuk/Globals.h" #include "../Unuk/Globals.h"
#include "../Unuk/Constants.h" #include "../Unuk/Constants.h"
#include "MemClass.h"
#include "ApplySurface.h" #include "ApplySurface.h"
#include "ImageLoader.h" #include "ImageLoader.h"
#include "Collision.h" #include "Collision.h"
@ -40,6 +41,22 @@ public:
void Render(void); void Render(void);
void Update(void); void Update(void);
inline void* operator new(size_t size) {
return gMemManager.Allocate(size);
}
inline void operator delete(void* object) {
gMemManager.Free(object);
}
inline void* operator new [](size_t size) {
return gMemManager.Allocate(size);
}
inline void operator delete [](void* object) {
gMemManager.Free(object);
}
protected: protected:
void Move(void); void Move(void);

View File

@ -9,7 +9,7 @@ public:
~NPC(void); ~NPC(void);
void Update(void); void Update(void);
protected: protected:
void Move(void); void Move(void);