labath added inline comments.

================
Comment at: include/lldb/Core/RichManglingInfo.h:83-84
+public:
+  RichManglingInfo *SetItaniumInfo();
+  RichManglingInfo *SetLegacyCxxParserInfo(const ConstString &mangled);
+
----------------
I find it odd that one of these functions is stateless 
(`SetLegacyCxxParserInfo` takes the string which initializes the object as an 
argument), while the other receives the state magically via the IPD accessor.

Would it be possible to change it so that the other option is stateless too 
(`SetItaniumInfo(ConstString mangled)`)?

We could change `RichManglingInfo` to return the full demangled name too, so 
that you have access to the demangled name via this API too (which /I think/ is 
the reason why you created a separate `GetItaniumRichDemangleInfo` function).


================
Comment at: source/Core/RichManglingInfo.cpp:36-40
+RichManglingContext::SetLegacyCxxParserInfo(const ConstString &mangled) {
+  m_info.ResetProvider();
+  m_info.m_provider = RichManglingInfo::PluginCxxLanguage;
+  m_info.m_legacy_parser = new CPlusPlusLanguage::MethodName(mangled);
+  return &m_info;
----------------
Is this really the **mangled** name?


================
Comment at: source/Core/RichManglingInfo.cpp:69-80
+const char *RichManglingInfo::GetFunctionBaseName() const {
+  switch (m_provider) {
+  case ItaniumPartialDemangler:
+    if (auto buf = m_IPD->getFunctionBaseName(m_IPD_buf, &m_IPD_size)) {
+      m_IPD_buf = buf;
+      return buf;
+    }
----------------
Could these return `StringRef`? Am I correct in assuming that `m_IPD_size` 
holds the size of the returned string? If thats the case then you could even do 
this with no performance impact (or a positive one).


https://reviews.llvm.org/D50071



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to