[PATCH][PUSHED] Fix for sw_filter_test crash due to ambiguous FieldEntry destructor
Caolán McNamara
caolanm at redhat.com
Mon Jul 23 04:54:54 PDT 2012
On Sun, 2012-07-22 at 11:25 +0200, Kristian Rietveld wrote:
> (Please keep me on CC as I am not subscribed to the list)
>
> Hi all,
>
> I have been building LibreOffice using Clang on Mac OS X Lion again, now
> that it is possible to get a working build using Clang on Linux.
>
> During the build, however, the "sw_filters_test" unit test crashes. The
> crash happens in rtl_string_release from the FieldEntry (the one in
> sw/source/file/ww8/ww8par.hxx) destructor. The FieldEntry destructor is
> called through a dyld stub.
>
> After reading assembly code I figured that the FieldEntry destructor
> being executed does not match the FieldEntry's fields. What was already
> suspicious above is that rtl_string_release is being called even though
> this FieldEntry uses OUStrings.
>
> From the assembly code I guess the FieldEntry destructor being executed
> is actually the one in registry/source/reflwrit.cxx. So my impression
> is that the dynamic linker on OS X is simply calling the wrong
> destructor (the symbols have the same name).
>
> To fix this, I can think of either putting the WW8 FieldEntry in a
> namespace, or renaming it to WW8FieldEntry. Since no namespaces were
> used in the current code, I decided to rename the class.
>
> A patch is attached and I verified that it fixes the crashing unit test
> for me. If people have a better or preferred way to fix this, please let
> me know and I will update the patch accordingly.
Sounds like a similar problem to fdo#37044, fixed by
http://cgit.freedesktop.org/libreoffice/core/commit/?id=7080d629c82422a419d38051536c7711f8abe53e
I thought that got tracked down to disabled visibility or something of
that nature. Anyway, doesn't hurt to disambiguate.
C.
More information about the LibreOffice
mailing list