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.
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.