From a287422930bd74ae9675d4a900a4dbab35895f87 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Thu, 17 Jun 2010 22:09:25 +0000 Subject: [PATCH] bugfixes to correct segfault --- source/glest_game/facilities/game_util.cpp | 2 +- source/glest_game/game/game.cpp | 17 ++-------- source/glest_game/game/game.h | 4 +-- source/glest_game/graphics/renderer.cpp | 7 ++-- .../include/platform/common/simple_threads.h | 7 ---- .../platform/common/simple_threads.cpp | 33 ------------------- 6 files changed, 9 insertions(+), 61 deletions(-) diff --git a/source/glest_game/facilities/game_util.cpp b/source/glest_game/facilities/game_util.cpp index 14578124b..f08703096 100644 --- a/source/glest_game/facilities/game_util.cpp +++ b/source/glest_game/facilities/game_util.cpp @@ -26,7 +26,7 @@ using namespace Shared::Platform; namespace Glest{ namespace Game{ const string mailString= "contact_game@glest.org"; -const string glestVersionString= "v3.3.5-beta7.2"; +const string glestVersionString= "v3.3.5-beta7.3"; string getCrashDumpFileName(){ return "glest" + glestVersionString + ".dmp"; diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index d4d3d0cb6..00e7146a8 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -48,7 +48,6 @@ Game::Game(Program *program, const GameSettings *gameSettings): { SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); - sdlEventsThread = NULL; originalDisplayMsgCallback = NULL; thisGamePtr = this; @@ -80,10 +79,6 @@ Game::Game(Program *program, const GameSettings *gameSettings): Game::~Game(){ SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); - BaseThread::shutdownAndWait(sdlEventsThread); - delete sdlEventsThread; - sdlEventsThread = NULL; - Logger &logger= Logger::getInstance(); Renderer &renderer= Renderer::getInstance(); @@ -130,9 +125,6 @@ void Game::load(){ SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] gameSettings = [%s]\n",__FILE__,__FUNCTION__,__LINE__,this->gameSettings.toString().c_str()); - sdlEventsThread = new PumpSDLEventsTaskThread(); - sdlEventsThread->start(); - Logger &logger= Logger::getInstance(); string mapName= gameSettings.getMap(); string tilesetName= gameSettings.getTileset(); @@ -440,12 +432,6 @@ void Game::init() logger.add("Launching game"); - SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n\n\n=-=-=-=-=-=-=-=-=-=-= STARTING GAME =-=-=-=-=-=-=-=-=-=-=\n\n",__FILE__,__FUNCTION__,__LINE__); - - BaseThread::shutdownAndWait(sdlEventsThread); - delete sdlEventsThread; - sdlEventsThread = NULL; - SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); } @@ -1210,7 +1196,8 @@ void Game::render2d(){ SurfaceCell *sc= map->getSurfaceCell(mapPos.x, mapPos.y); Object *o= sc->getObject(); bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL); - bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + //bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + bool isVisible = true; if(isExplored == true && isVisible == true) { visibleObjectCount++; } diff --git a/source/glest_game/game/game.h b/source/glest_game/game/game.h index f412a634d..ff4c2da85 100644 --- a/source/glest_game/game/game.h +++ b/source/glest_game/game/game.h @@ -22,7 +22,7 @@ #include "chat_manager.h" #include "script_manager.h" #include "game_settings.h" -#include "simple_threads.h" +//#include "simple_threads.h" #include "network_interface.h" using std::vector; @@ -84,8 +84,6 @@ private: time_t lastRenderLog2d; DisplayMessageFunction originalDisplayMsgCallback; - PumpSDLEventsTaskThread *sdlEventsThread; - public: Game(Program *program, const GameSettings *gameSettings); ~Game(); diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index 31720adc2..3ddaaf63e 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -1304,7 +1304,9 @@ void Renderer::renderObjects(const int renderFps, const int worldFrameCount) { SurfaceCell *sc= map->getSurfaceCell(mapPos.x, mapPos.y); Object *o= sc->getObject(); bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL); - bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + //bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + bool isVisible = true; + if(isExplored == true && isVisible == true) { /* if(renderFps >= 0 && renderFps < MIN_RENDER_FPS_ALLOWED) { @@ -2826,7 +2828,8 @@ void Renderer::renderObjectsFast() { SurfaceCell *sc= map->getSurfaceCell(mapPos); Object *o= sc->getObject(); bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL); - bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + //bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL); + bool isVisible = true; if(isExplored == true && isVisible == true) { const Model *objModel= sc->getObject()->getModel(); diff --git a/source/shared_lib/include/platform/common/simple_threads.h b/source/shared_lib/include/platform/common/simple_threads.h index e8f130942..b681afe9f 100644 --- a/source/shared_lib/include/platform/common/simple_threads.h +++ b/source/shared_lib/include/platform/common/simple_threads.h @@ -71,13 +71,6 @@ public: bool getTaskSignalled(); }; -class PumpSDLEventsTaskThread : public BaseThread -{ -public: - PumpSDLEventsTaskThread(); - virtual void execute(); -}; - }}//end namespace #endif diff --git a/source/shared_lib/sources/platform/common/simple_threads.cpp b/source/shared_lib/sources/platform/common/simple_threads.cpp index c7156b95f..730fe3ab1 100644 --- a/source/shared_lib/sources/platform/common/simple_threads.cpp +++ b/source/shared_lib/sources/platform/common/simple_threads.cpp @@ -155,37 +155,4 @@ bool SimpleTaskThread::getTaskSignalled() { return retval; } -PumpSDLEventsTaskThread::PumpSDLEventsTaskThread() : BaseThread() { -} - -void PumpSDLEventsTaskThread::execute() { - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); - - setRunningStatus(true); - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"SDL_PumpEvents thread is running\n"); - - try { - for(;getQuitStatus() == false;) { - SDL_PumpEvents(); - sleep(25); - } - - SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); - - } - catch(const exception &ex) { - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] error [%s]\n",__FILE__,__FUNCTION__,__LINE__,ex.what()); - setRunningStatus(false); - } - catch(...) { - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] unknown error\n",__FILE__,__FUNCTION__,__LINE__); - setRunningStatus(false); - } - - setRunningStatus(false); - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"SDL_PumpEvents thread is exiting\n"); - - SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); -} - }}//end namespace