Skip to content

Commit 0a5390f

Browse files
committed
Optimize MSVC demangler and DemangledTypeNode performance
1 parent 296b7fd commit 0a5390f

6 files changed

Lines changed: 392 additions & 301 deletions

File tree

demangler/gnu3/demangle_gnu3.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ DemangledTypeNode DemangleGNU3::DemangleType()
602602
if (vltl)
603603
type.SetVolatile(true);
604604
if (rstrct)
605-
type.SetPointerSuffix({RestrictSuffix});
605+
type.SetPointerSuffixBits(1u << RestrictSuffix);
606606
PushType(type);
607607
return type;
608608
}
@@ -2210,7 +2210,7 @@ DemangledTypeNode DemangleGNU3::DemangleLocalName()
22102210
type.SetTypeName(std::move(newName));
22112211
type.SetConst(tmpType.IsConst());
22122212
type.SetVolatile(tmpType.IsVolatile());
2213-
type.SetPointerSuffix(tmpType.GetPointerSuffix());
2213+
type.SetPointerSuffixBits(tmpType.GetPointerSuffixBits());
22142214
}
22152215
else
22162216
{
@@ -2735,7 +2735,7 @@ DemangledTypeNode DemangleGNU3::DemangleSymbol(QualifiedName& varName)
27352735
varName = type.GetTypeName();
27362736
cnst = type.IsConst();
27372737
vltl = type.IsVolatile();
2738-
auto suffix = type.GetPointerSuffix();
2738+
auto suffix = type.GetPointerSuffixBits();
27392739
if (m_reader.Peek() == 'J')
27402740
{
27412741
m_reader.Consume();
@@ -2828,11 +2828,11 @@ DemangledTypeNode DemangleGNU3::DemangleSymbol(QualifiedName& varName)
28282828
if (isReturnTypeUnknown)
28292829
type.SetReturnTypeConfidence(BN_MINIMUM_CONFIDENCE);
28302830

2831-
type.SetPointerSuffix(suffix);
2831+
type.SetPointerSuffixBits(suffix);
28322832
type.SetConst(cnst);
28332833
type.SetVolatile(vltl);
28342834
if (rstrct)
2835-
type.SetPointerSuffix({RestrictSuffix});
2835+
type.SetPointerSuffixBits(1u << RestrictSuffix);
28362836

28372837
// PrintTables();
28382838
MyLogDebug("Done: %s%s%s\n", type.GetStringBeforeName().c_str(), varName.GetString().c_str(),

0 commit comments

Comments
 (0)