Skip to content

Commit f024f01

Browse files
committed
perf(namekey): Remove all superfluous AsciiString allocations for name key lookups
1 parent e61e2cd commit f024f01

File tree

98 files changed

+336
-367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+336
-367
lines changed

Core/GameEngine/Source/Common/System/Xfer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ void Xfer::xferUpgradeMask( UpgradeMaskType *upgradeMaskData )
791791
xferAsciiString( &upgradeName );
792792

793793
// find this upgrade template
794-
upgradeTemplate = TheUpgradeCenter->findUpgrade( upgradeName );
794+
upgradeTemplate = TheUpgradeCenter->findUpgrade( upgradeName.str() );
795795
if( upgradeTemplate == NULL )
796796
{
797797

Core/GameEngine/Source/GameNetwork/ConnectionManager.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ void ConnectionManager::processChat(NetChatCommandMsg *msg)
648648

649649
AsciiString playerName;
650650
playerName.format("player%d", msg->getPlayerID());
651-
const Player *player = ThePlayerList->findPlayerWithNameKey( TheNameKeyGenerator->nameToKey( playerName ) );
651+
const Player *player = ThePlayerList->findPlayerWithNameKey( TheNameKeyGenerator->nameToKey( playerName.str() ) );
652652
if (!player)
653653
{
654654
TheInGameUI->message(UnicodeString(L"%ls"), unitext.str());

Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ AsciiString GameSpyStagingRoom::generateGameSpyGameResultsPacket( void )
604604
{
605605
AsciiString playerName;
606606
playerName.format("player%d", i);
607-
Player *p = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName));
607+
Player *p = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName.str()));
608608
if (p)
609609
{
610610
++numHumans;
@@ -650,7 +650,7 @@ AsciiString GameSpyStagingRoom::generateGameSpyGameResultsPacket( void )
650650
{
651651
AsciiString playerName;
652652
playerName.format("player%d", i);
653-
Player *p = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName));
653+
Player *p = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName.str()));
654654
if (p)
655655
{
656656
GameSpyGameSlot *slot = &(m_GameSpySlot[i]);
@@ -698,7 +698,7 @@ AsciiString GameSpyStagingRoom::generateLadderGameResultsPacket( void )
698698
{
699699
AsciiString playerName;
700700
playerName.format("player%d", i);
701-
p[i] = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName));
701+
p[i] = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName.str()));
702702
if (p[i])
703703
{
704704
++numPlayers;

Core/GameEngine/Source/GameNetwork/NetCommandMsg.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ GameMessage *NetGameCommandMsg::constructGameMessage()
175175

176176
AsciiString name;
177177
name.format("player%d", getPlayerID());
178-
retval->friend_setPlayerIndex( ThePlayerList->findPlayerWithNameKey(TheNameKeyGenerator->nameToKey(name))->getPlayerIndex());
178+
retval->friend_setPlayerIndex( ThePlayerList->findPlayerWithNameKey(TheNameKeyGenerator->nameToKey(name.str()))->getPlayerIndex());
179179

180180
GameMessageArgument *arg = m_argList;
181181
while (arg != NULL) {

Core/GameEngine/Source/GameNetwork/Network.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ void Network::processDestroyPlayerCommand(NetDestroyPlayerCommandMsg *msg)
665665

666666
AsciiString playerName;
667667
playerName.format("player%d", playerIndex);
668-
Player *pPlayer = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName));
668+
Player *pPlayer = ThePlayerList->findPlayerWithNameKey(NAMEKEY(playerName.str()));
669669
if (pPlayer)
670670
{
671671
GameMessage *msg = newInstance(GameMessage)(GameMessage::MSG_SELF_DESTRUCT);

GeneralsMD/Code/GameEngine/Include/Common/DamageFX.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ class DamageFXStore : public SubsystemInterface
147147
/**
148148
Find the DamageFX with the given name. If no such DamageFX exists, return null.
149149
*/
150-
const DamageFX *findDamageFX( AsciiString name ) const;
150+
const DamageFX *findDamageFX( const char* name ) const;
151151

152152
static void parseDamageFXDefinition(INI* ini);
153153

GeneralsMD/Code/GameEngine/Include/Common/NameKeyGenerator.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ class NameKeyGenerator : public SubsystemInterface
9191
virtual void reset();
9292
virtual void update() { }
9393

94-
/// Given a string, convert into a unique integer key.
95-
NameKeyType nameToKey(const AsciiString& name) { return nameToKey(name.str()); }
96-
NameKeyType nameToLowercaseKey(const AsciiString& name) { return nameToLowercaseKey(name.str()); }
97-
9894
/// Given a string, convert into a unique integer key.
9995
NameKeyType nameToKey(const char* name);
10096
NameKeyType nameToLowercaseKey(const char *name);
@@ -138,7 +134,7 @@ class NameKeyGenerator : public SubsystemInterface
138134
extern NameKeyGenerator *TheNameKeyGenerator; ///< just one namespace for now
139135

140136
// typing "TheNameKeyGenerator->nameToKey()" is awfully wordy. Here are shorter synonyms:
141-
inline NameKeyType NAMEKEY(const AsciiString& name) { return TheNameKeyGenerator->nameToKey(name); }
137+
142138
inline NameKeyType NAMEKEY(const char* name) { return TheNameKeyGenerator->nameToKey(name); }
143139

144140
inline AsciiString KEYNAME(NameKeyType nk) { return TheNameKeyGenerator->keyToName(nk); }

GeneralsMD/Code/GameEngine/Include/Common/Upgrade.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ class UpgradeCenter : public SubsystemInterface
237237

238238
UpgradeTemplate *firstUpgradeTemplate( void ); ///< return the first upgrade template
239239
const UpgradeTemplate *findUpgradeByKey( NameKeyType key ) const; ///< find upgrade by name key
240-
const UpgradeTemplate *findUpgrade( const AsciiString& name ) const; ///< find and return upgrade by name
240+
const UpgradeTemplate *findUpgrade( const char* name ) const; ///< find and return upgrade by name
241241
const UpgradeTemplate *findVeterancyUpgrade(VeterancyLevel level) const; ///< find and return upgrade by name
242242

243243
UpgradeTemplate *newUpgrade( const AsciiString& name ); ///< allocate, link, and return new upgrade

GeneralsMD/Code/GameEngine/Include/GameClient/Image.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class ImageCollection : public SubsystemInterface
128128

129129
void load( Int textureSize ); ///< load images
130130

131-
const Image *findImageByName( const AsciiString& name ); ///< find image based on name
131+
const Image *findImageByName( const char* name ) const; ///< find image based on name
132132

133133
/// adds the given image to the collection, transfers ownership to this object
134134
void addImage(Image *image);

GeneralsMD/Code/GameEngine/Include/GameLogic/Armor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class ArmorStore : public SubsystemInterface
108108
/**
109109
Find the Armor with the given name. If no such Armor exists, return null.
110110
*/
111-
const ArmorTemplate* findArmorTemplate(AsciiString name) const;
111+
const ArmorTemplate* findArmorTemplate(const char* name) const;
112112

113113
inline Armor makeArmor(const ArmorTemplate *tmpl) const
114114
{

0 commit comments

Comments
 (0)