summaryrefslogtreecommitdiff
path: root/demangler/gnu3/demangle_gnu3.cpp
AgeCommit message (Collapse)Author
2026-03-26Rewrite GNU3 demangler for performance using DemangledTypeNodePeter LaFosse
Replace the TypeBuilder-based demangling path with a lightweight DemangledTypeNode representation that defers type object construction until the symbol is fully parsed. This avoids repeated heap allocation and ref-count churn during recursive descent. Key changes: - Add DemangledTypeNode / demangled_type_node.{h,cpp}: a compact IR that mirrors the type grammar without allocating BN Type objects - Use a thread_local demangler instance to amortize vector allocations across calls - Also commonize some of the demangled string length calculations. Result: ~3x throughput improvement on a 180K-symbol corpus with 97.7% success rate (matching the previous implementation). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-01-01update copyrights for 2026Jordan Wiens
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-06-05Fix crash in GNU3 demangler with specific non-mangled stringMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6902 however we still need to figure out what we want to do about the type info names being invalid. There really is not a good way to tell without saying all type info names _must_ be mangled.
2025-03-28missed the older dates!Jordan Wiens
2024-12-18Fix crash when demangling certain namesGlenn Smith
Fixes #6261
2024-11-21Fix gnu3 demangler losing track of NTR idsGlenn Smith
2024-10-23Compile demangler plugins directly into the core for P E R FGlenn Smith
Turns out, this is a rather hot path on initial binary loading (>50% runtime), and trying to pipe it all through the FFI makes it really slow. Like 100% slower. Ouch. Now, the demangler plugins are written with a bunch of #ifdef macros to allow for building both as a plugin and directly into the core. There is no functionality change here apart from regaining the lost performance.
2024-10-17Demangler plugin APIGlenn Smith
Closes #467