Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 6, 2015, 11:52:25 PM (9 years ago)
Author:
landauf
Message:

statically initialized instances are now registered with a type. CoreStaticInitializationHandler initializes all instances in core, NetworkStaticInitializationHandler initializes all instances in network.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/core7/src/libraries/core/CoreStaticInitializationHandler.cc

    r10532 r10535  
    4747    void CoreStaticInitializationHandler::loadModule(ModuleInstance* module)
    4848    {
    49         module->loadAllStaticallyInitializedInstances(0);
     49        this->loadInstances(module);
     50        if (this->bInitInstances_)
     51            this->initInstances(module);
     52    }
     53
     54    void CoreStaticInitializationHandler::loadInstances(ModuleInstance* module)
     55    {
     56        // the order of initialization is important
     57        module->loadAllStaticallyInitializedInstances(StaticInitialization::STATIC_INITIALIZATION_HANDLER);
     58        module->loadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
     59        module->loadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
     60        module->loadAllStaticallyInitializedInstances(StaticInitialization::COMMAND_LINE_ARGUMENT);
     61        module->loadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
     62    }
     63
     64    void CoreStaticInitializationHandler::initInstances(ModuleInstance* module)
     65    {
    5066        IdentifierManager::getInstance().createClassHierarchy();
    5167        ScopeManager::getInstance().updateListeners();
     
    5470    void CoreStaticInitializationHandler::unloadModule(ModuleInstance* module)
    5571    {
    56         module->unloadAllStaticallyInitializedInstances(0);
     72        // inverted order of initialization
     73        module->unloadAllStaticallyInitializedInstances(StaticInitialization::CONSOLE_COMMAND);
     74        module->unloadAllStaticallyInitializedInstances(StaticInitialization::COMMAND_LINE_ARGUMENT);
     75        module->unloadAllStaticallyInitializedInstances(StaticInitialization::SCOPED_SINGLETON_WRAPPER);
     76        module->unloadAllStaticallyInitializedInstances(StaticInitialization::IDENTIFIER);
     77        module->unloadAllStaticallyInitializedInstances(StaticInitialization::STATIC_INITIALIZATION_HANDLER);
    5778    }
    5879}
Note: See TracChangeset for help on using the changeset viewer.