Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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.