Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 4, 2008, 8:28:14 PM (15 years ago)
Author:
rgrieder
Message:

Completed destruction of static elements like XMLPort, Identifier, etc.
Of initially about 250 memory leaks (not in the actual meaning but the memory was never freed anyway) only 1 remains in TinyCpp.

  • Core class is now a normal Singleton that gets created and destroyed in main.
  • The same goes for Language, LuaBind, SignalHandler and PlayerManager.
  • Added a new std::set to the CommandExecutor so that the external ConsoleCommands can get destroyed too.
  • Code for destroying CommandLineArguments
  • Added destruction code for ConstructionCallbacks in Identifier
  • Moved internal identifier map (the one with the typeid(.) names) in a static function in Identifier. This was necessary in order to destroy ALL Identifiers with the static destruction function. Before it was possible to create an Identifier with having a class instance (that would call RegisterObject) for instance by simply accessing it via getIdentifier.
  • Removed a big memory leak in Button (forgot to destroy the ConfigValueContainers)
  • Added destruction code for InputBufferListenerTuples in InputBuffer destructor.
  • Added destruction code for load and save executors in both XMLPortParam and XMLPortObject
  • Added destruction code for ConsoleCommands in GSRoot, GSGraphics and GSLevel (temporary solution anyway)
  • Deleting the CEGUILua script module seems to work properly now, one memory leak less (GUIManager.cc)
  • Added global destruction calls in Main.cc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy2/src/core/XMLPort.h

    r2173 r2344  
    4343#include "CorePrereqs.h"
    4444
     45#include <cassert>
    4546#include "util/Debug.h"
    4647#include "util/Exception.h"
     
    327328                this->loadexecutor_ = loadexecutor;
    328329                this->saveexecutor_ = saveexecutor;
     330            }
     331
     332            ~XMLPortClassParamContainer()
     333            {
     334                assert(this->loadexecutor_);
     335                delete this->loadexecutor_;
     336                if (this->saveexecutor_)
     337                    delete this->saveexecutor_;
    329338            }
    330339
     
    471480                this->bApplyLoaderMask_ = bApplyLoaderMask;
    472481                this->bLoadBefore_ = bLoadBefore;
     482            }
     483
     484            ~XMLPortClassObjectContainer()
     485            {
     486                assert(this->loadexecutor_);
     487                delete this->loadexecutor_;
     488                if (this->saveexecutor_)
     489                    delete this->saveexecutor_;
    473490            }
    474491
Note: See TracChangeset for help on using the changeset viewer.