sgraenitz added a comment.

Thanks or the quick reviews! Follow-ups inline.



================
Comment at: include/lldb/Symbol/Symtab.h:58
+  /// dependency. Keep a void* here instead and cast it on-demand on the cpp.
+  void *m_legacy_parser = nullptr;
+
----------------
zturner wrote:
> sgraenitz wrote:
> > This is the hackiest point I guess.
> We have `llvm::Any`.  Perhaps you want to use that here instead of `void*`?
Thanks. I will check that.


================
Comment at: include/lldb/Symbol/Symtab.h:81-83
+  // No move
+  RichManglingInfo(RichManglingInfo &&) = delete;
+  RichManglingInfo &operator=(RichManglingInfo &&) = delete;
----------------
labath wrote:
> This is implied by the deleted copy operations.
Which are implicitly deleted too, due to the existence of the destructor right? 
Does LLVM/LLDB have some kind of convention for it? I like to be explicit on 
ctors&assignment ("rule of 5"), because it aids error messages, but I would be 
fine with following the existing convention here.


================
Comment at: source/Symbol/Symtab.cpp:271-289
+const char *RichManglingInfo::getFunctionBaseName() const {
+  switch (m_provider) {
+  case ItaniumPartialDemangler:
+    m_IPD_buf = m_IPD->getFunctionBaseName(m_IPD_buf, &m_IPD_size);
+    return m_IPD_buf;
+  case PluginCxxLanguage:
+    return get<CPlusPlusLanguage::MethodName>()->GetBasename().data();
----------------
labath wrote:
> Could these return StringRef instead of C strings?
Yes. So far it's simply the closest superset of the two interfaces, but I will 
try using `StringRef` where possible.


================
Comment at: source/Symbol/Symtab.cpp:295
+namespace {
+bool lldb_skip_name(const char *mangled_cstr, Mangled::ManglingScheme scheme) {
+  switch (scheme) {
----------------
labath wrote:
> sgraenitz wrote:
> > This uses a raw C-string instead of `llvm::StringRef` in order to achieve 
> > `O(1)` runtime.
> If you changed the caller to use StringRef too (it seems possible at a first 
> glance) then this would still be O(1)
Right, thanks there's a `ConstString::GetStringRef()`. Perfect.


https://reviews.llvm.org/D49990



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

Reply via email to