Browse Source

- Minor performance increases. This behavior needs rewriting really, it's pretty terrible.

MelvMay-GG 12 years ago
parent
commit
e495b16

+ 4 - 6
engine/source/component/behaviors/behaviorComponent.cpp

@@ -1308,9 +1308,7 @@ const char *BehaviorComponent::callOnBehaviors( U32 argc, const char *argv[] )
 {   
 {   
     if( mBehaviors.empty() )   
     if( mBehaviors.empty() )   
         return Parent::callOnBehaviors( argc, argv );
         return Parent::callOnBehaviors( argc, argv );
-   
-    const char *cbName = StringTable->insert(argv[0]);
-   
+      
     // Copy the arguments to avoid weird clobbery situations.
     // Copy the arguments to avoid weird clobbery situations.
     FrameTemp<char *> argPtrs (argc);
     FrameTemp<char *> argPtrs (argc);
    
    
@@ -1336,6 +1334,7 @@ const char *BehaviorComponent::callOnBehaviors( U32 argc, const char *argv[] )
             continue;
             continue;
 
 
         // Lookup the Callback Namespace entry and then splice callback
         // Lookup the Callback Namespace entry and then splice callback
+        const char *cbName = StringTable->insert(argv[0]);
         Namespace::Entry *pNSEntry = pNamespace->lookup(cbName);
         Namespace::Entry *pNSEntry = pNamespace->lookup(cbName);
         if( pNSEntry )
         if( pNSEntry )
         {
         {
@@ -1373,9 +1372,7 @@ const char *BehaviorComponent::_callMethod( U32 argc, const char *argv[], bool c
 {   
 {   
     if( mBehaviors.empty() )   
     if( mBehaviors.empty() )   
         return Parent::_callMethod( argc, argv, callThis );
         return Parent::_callMethod( argc, argv, callThis );
-   
-    const char *cbName = StringTable->insert(argv[0]);
-   
+     
     // Copy the arguments to avoid weird clobbery situations.
     // Copy the arguments to avoid weird clobbery situations.
     FrameTemp<char *> argPtrs (argc);
     FrameTemp<char *> argPtrs (argc);
    
    
@@ -1398,6 +1395,7 @@ const char *BehaviorComponent::_callMethod( U32 argc, const char *argv[], bool c
             continue;
             continue;
 
 
         // Lookup the Callback Namespace entry and then splice callback
         // Lookup the Callback Namespace entry and then splice callback
+        const char *cbName = StringTable->insert(argv[0]);
         Namespace::Entry *pNSEntry = pNamespace->lookup(cbName);
         Namespace::Entry *pNSEntry = pNamespace->lookup(cbName);
         if( pNSEntry )
         if( pNSEntry )
         {
         {

+ 1 - 3
engine/source/component/dynamicConsoleMethodComponent.cpp

@@ -134,8 +134,6 @@ const char *DynamicConsoleMethodComponent::callOnBehaviors( U32 argc, const char
    pThis = dynamic_cast<SimObject *>( this );
    pThis = dynamic_cast<SimObject *>( this );
    AssertFatal( pThis, "DynamicConsoleMethodComponent::callOnBehaviors : this should always exist!" );
    AssertFatal( pThis, "DynamicConsoleMethodComponent::callOnBehaviors : this should always exist!" );
 
 
-   const char *cbName = StringTable->insert(argv[0]);
-
    const char* result = "";
    const char* result = "";
    bool handled = false;
    bool handled = false;
 
 
@@ -144,7 +142,7 @@ const char *DynamicConsoleMethodComponent::callOnBehaviors( U32 argc, const char
       VectorPtr<SimComponent *>&componentList = lockComponentList();
       VectorPtr<SimComponent *>&componentList = lockComponentList();
       for( SimComponentIterator nItr = (componentList.end()-1);  nItr >= componentList.begin(); nItr-- )
       for( SimComponentIterator nItr = (componentList.end()-1);  nItr >= componentList.begin(); nItr-- )
       {
       {
-         argv[0] = cbName;
+         argv[0] = StringTable->insert(argv[0]);
 
 
          SimComponent *pComponent = (*nItr);
          SimComponent *pComponent = (*nItr);
          AssertFatal( pComponent, "DynamicConsoleMethodComponent::callOnBehaviors - NULL component in list!" );
          AssertFatal( pComponent, "DynamicConsoleMethodComponent::callOnBehaviors - NULL component in list!" );