sgraenitz added inline comments.
================ 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; + } ---------------- labath wrote: > 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). While investigating the `StringRef` issue, I realized another problem here. The second param `N` to the IPD queries is used to pass the **buffer size in** and the **string length out**. With the current use of `m_IPD_size` I pass ever smaller buffer sizes in subsequent calls. That causes unnecessary reallocs. I should track the length out param separately. ================ Comment at: source/Symbol/Symtab.cpp:397 + // The base name will be our entry's name. + entry.cstring = ConstString(base_name.data()); + ---------------- labath wrote: > remove `.data()` Actually, this is dangerous as `StringRef` doesn't guarantee null termination. Will fix that. https://reviews.llvm.org/D50071 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits