[Libreoffice-commits] .: Branch 'libreoffice-3-3-0' - desktop/source
Petr Mladek
pmladek at kemper.freedesktop.org
Fri Jan 14 10:27:05 PST 2011
desktop/source/deployment/manager/dp_extensionmanager.cxx | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
New commits:
commit 57746f255004ef42fc87c3ad3d30a4cb47a0111b
Author: Petr Mladek <pmladek at suse.cz>
Date: Thu Jan 13 21:13:19 2011 +0100
unopkg crasher on SLED11-SP1 (bnc#655912)
activateExtension call broke memory if dp_misc::getIdentifier and xNewExtension
were called inline; the problem was visible only with gcc-4.3.4 and did not
appear with older or newer gcc versions
valgrind got happy and unopkg stopped crashing after the values were passed via
the extra variables
it looks like a miscompilation; IMHO, it does not make sense to report it
because it does not happen with last gcc version
this code is not critical for the performance, so the workaround with
extra variables is fine; they might even be optimized out by the compiler
Signed off by Michael, Noel, Tor
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index c6529ec..11b38cd 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -740,9 +740,13 @@ Reference<deploy::XPackage> ExtensionManager::addExtension(
if (repository.equals(OUSTR("user")))
bUserDisabled2 = false;
+ // pass the two values via variables to workaround gcc-4.3.4 specific bug (bnc#655912)
+ OUString sNewExtensionIdentifier = dp_misc::getIdentifier(xNewExtension);
+ OUString sNewExtensionFileName = xNewExtension->getName();
+
activateExtension(
- dp_misc::getIdentifier(xNewExtension),
- xNewExtension->getName(), bUserDisabled2, false, xAbortChannel,
+ sNewExtensionIdentifier, sNewExtensionFileName,
+ bUserDisabled2, false, xAbortChannel,
Reference<ucb::XCommandEnvironment>());
}
else
More information about the Libreoffice-commits
mailing list