[Lldb-commits] [lldb] r226088 - Fix a little thinko in r226017 - the code to actually add the demangled name to the Mangled object got

Zachary Turner zturner at google.com
Wed Jan 14 21:38:57 PST 2015


Ahh, I see it now.  Thanks!

On Wed Jan 14 2015 at 9:24:08 PM Jason Molenda <jmolenda at apple.com> wrote:

> I think the problem was that the code for LLDB_USE_BUILTIN_DEMANGLER used
> to be
>
>                 char *demangled_name = FastDemangle (mangled_cstr,
>
>  m_mangled.GetLength());
>                 if (!demangled_name)
>                     demangled_name = __cxa_demangle (mangled_cstr, NULL,
> NULL, NULL);
>                 if (demangled_name)
>                 {
>                     m_demangled.SetCStringWithMangledCounterpart(demangled_name,
> m_mangled);
>                     free (demangled_name);
>                 }
>
> but with r226017 the code path for LLDB_USE_BUILTIN_DEMANGLER became
>
>                 char *demangled_name = FastDemangle (mangled_cstr,
>
>  m_mangled.GetLength());
>                 if (!demangled_name)
>                     demangled_name = __cxa_demangle (mangled_cstr, NULL,
> NULL, NULL);
>
> (i.e. m_demangled was never set)
>
> J
>
>
> > On Jan 14, 2015, at 7:40 PM, Zachary Turner <zturner at google.com> wrote:
> >
> > Err, was that code wrong? I malloc it unconditionally, so it should be
> freed unconditionally (don't have source in front of me, so I'm going from
> memory)
> > On Wed, Jan 14, 2015 at 7:36 PM Jim Ingham <jingham at apple.com> wrote:
> > Author: jingham
> > Date: Wed Jan 14 21:34:31 2015
> > New Revision: 226088
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=226088&view=rev
> > Log:
> > Fix a little thinko in r226017 - the code to actually add the demangled
> name to the Mangled object got
> > moved into the #else branch of the #if/#elif/#endif, so it wasn't
> getting done in the #if case anymore.
> >
> > Keep the code to add the demangled name outside of the #if, and then
> just free the demangled_name
> > and set it back to NULL in the Windows case.
> >
> > <rdar://problem/19479499>
> >
> > Modified:
> >     lldb/trunk/source/Core/Mangled.cpp
> >
> > Modified: lldb/trunk/source/Core/Mangled.cpp
> > URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/
> Core/Mangled.cpp?rev=226088&r1=226087&r2=226088&view=diff
> > ============================================================
> ==================
> > --- lldb/trunk/source/Core/Mangled.cpp (original)
> > +++ lldb/trunk/source/Core/Mangled.cpp Wed Jan 14 21:34:31 2015
> > @@ -5240,18 +5240,20 @@ Mangled::GetDemangledName () const
> >
> UNDNAME_NO_MEMBER_TYPE |         // Strip virtual, static, etc specifiers
> >
> UNDNAME_NO_MS_KEYWORDS           // Strip all MS extension keywords
> >                                                        );
> > -                if (result > 0)
> > -                    m_demangled.SetCStringWithMangledCounterpart(demangled_name,
> m_mangled);
> > -                free(demangled_name);
> > +                if (result == 0)
> > +                {
> > +                    free (demangled_name);
> > +                    demangled_name = nullptr;
> > +                }
> >  #else
> >                  char *demangled_name = abi::__cxa_demangle
> (mangled_cstr, NULL, NULL, NULL);
> > +#endif
> >
> >                  if (demangled_name)
> >                  {
> >                      m_demangled.SetCStringWithMangledCounterpart(demangled_name,
> m_mangled);
> >                      free (demangled_name);
> >                  }
> > -#endif
> >              }
> >          }
> >          if (!m_demangled)
> >
> >
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150115/d9ad62f8/attachment.html>


More information about the lldb-commits mailing list