Speedup: Avoid string copy in CXMLReaderImpl::getAttributeByName

string has operator== for char_type which can save a lot of string allocations when loading xml's.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6206 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
cutealien
2021-04-16 12:59:29 +00:00
parent b709d2a772
commit bfaffe1171
3 changed files with 9 additions and 10 deletions

View File

@ -494,14 +494,12 @@ private:
// finds a current attribute by name, returns 0 if not found
const SAttribute* getAttributeByName(const char_type* name) const
{
if (!name)
return 0;
core::string<char_type> n = name;
for (int i=0; i<(int)Attributes.size(); ++i)
if (Attributes[i].Name == n)
return &Attributes[i];
if (name)
{
for (irr::u32 i=0; i<Attributes.size(); ++i)
if (Attributes[i].Name == name)
return &Attributes[i];
}
return 0;
}
@ -644,7 +642,7 @@ private:
//! converts the text file into the desired format.
/** \param source: begin of the text (without byte order mark)
\param pointerToStore: pointer to text data block which can be
stored or deleted based on the nesessary conversion.
stored or deleted based on the necessary conversion.
\param sizeWithoutHeader: Text size in characters without header
*/
template<class src_char_type>