From f9604cdcc6e9019d183bb039c3baadb1178422d6 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Oct 01 2013 14:26:44 +0000 Subject: Resolves: rhbz#1014010 crash on start up --- diff --git a/0001-rhbz-1014010-Missing-dependencies-in-isBootstrapType.patch b/0001-rhbz-1014010-Missing-dependencies-in-isBootstrapType.patch new file mode 100644 index 0000000..ac8005a --- /dev/null +++ b/0001-rhbz-1014010-Missing-dependencies-in-isBootstrapType.patch @@ -0,0 +1,131 @@ +From 6b20c5072944fc5408196b401fb5ab462600eecd Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Tue, 1 Oct 2013 14:33:56 +0200 +Subject: [PATCH] rhbz#1014010: Missing dependencies in isBootstrapType list + +...the list has been fixed now by copying its elements into an ENTRIES file and +running "unoidl-write udkapi/ @ENTITIES TEMP && unoidl-read TEMP >/dev/null" and +adding any reported unknown entities until it succeeds. + +However, the updated list lead to deadlock when css.reflection.ParamInfo UnoType +resolves css.reflection.XIdlClass UnoType resolves css.reflection.XIdlMethod +UnoType resolves css.reflection.ParamInfo UnoType, so broke the circle by no +longer resolving the interface methods' return and parameter types in +InterfaceType::dumpMethodsCppuDecl (which is why those type infos are only +generated on demand anyway; looks like this had been a careless thinko in the +generation of comprehensive type info that had remained unnoticed all the time). + +Change-Id: I50ef2fde16242298e055c6fa5971e70fad1a2b68 +(cherry picked from commit 254f59f623f58c320175a06a2c93bcee7868b623) +--- + codemaker/source/cppumaker/cpputype.cxx | 37 +++++++++++++++++++++++---------- + 1 file changed, 26 insertions(+), 11 deletions(-) + +diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx +index 9848f57..a1e17d6 100755 +--- a/codemaker/source/cppumaker/cpputype.cxx ++++ b/codemaker/source/cppumaker/cpputype.cxx +@@ -49,18 +49,25 @@ namespace { + + bool isBootstrapType(OUString const & name) { + static char const * const names[] = { ++ "com.sun.star.beans.Property", + "com.sun.star.beans.PropertyAttribute", ++ "com.sun.star.beans.PropertyChangeEvent", + "com.sun.star.beans.PropertyState", + "com.sun.star.beans.PropertyValue", + "com.sun.star.beans.XFastPropertySet", + "com.sun.star.beans.XMultiPropertySet", ++ "com.sun.star.beans.XPropertiesChangeListener", + "com.sun.star.beans.XPropertyAccess", ++ "com.sun.star.beans.XPropertyChangeListener", + "com.sun.star.beans.XPropertySet", ++ "com.sun.star.beans.XPropertySetInfo", + "com.sun.star.beans.XPropertySetOption", ++ "com.sun.star.beans.XVetoableChangeListener", + "com.sun.star.bridge.UnoUrlResolver", + "com.sun.star.bridge.XUnoUrlResolver", + "com.sun.star.connection.SocketPermission", + "com.sun.star.container.XElementAccess", ++ "com.sun.star.container.XEnumeration", + "com.sun.star.container.XEnumerationAccess", + "com.sun.star.container.XHierarchicalNameAccess", + "com.sun.star.container.XNameAccess", +@@ -70,6 +77,7 @@ bool isBootstrapType(OUString const & name) { + "com.sun.star.io.FilePermission", + "com.sun.star.io.IOException", + "com.sun.star.lang.DisposedException", ++ "com.sun.star.lang.EventObject", + "com.sun.star.lang.WrappedTargetRuntimeException", + "com.sun.star.lang.XComponent", + "com.sun.star.lang.XEventListener", +@@ -81,11 +89,19 @@ bool isBootstrapType(OUString const & name) { + "com.sun.star.lang.XSingleServiceFactory", + "com.sun.star.lang.XTypeProvider", + "com.sun.star.loader.XImplementationLoader", ++ "com.sun.star.reflection.FieldAccessMode", ++ "com.sun.star.reflection.MethodMode", ++ "com.sun.star.reflection.ParamInfo", ++ "com.sun.star.reflection.ParamMode", ++ "com.sun.star.reflection.TypeDescriptionSearchDepth", + "com.sun.star.reflection.XArrayTypeDescription", + "com.sun.star.reflection.XCompoundTypeDescription", + "com.sun.star.reflection.XEnumTypeDescription", ++ "com.sun.star.reflection.XIdlArray", + "com.sun.star.reflection.XIdlClass", ++ "com.sun.star.reflection.XIdlField", + "com.sun.star.reflection.XIdlField2", ++ "com.sun.star.reflection.XIdlMethod", + "com.sun.star.reflection.XIdlReflection", + "com.sun.star.reflection.XIndirectTypeDescription", + "com.sun.star.reflection.XInterfaceAttributeTypeDescription", +@@ -97,18 +113,28 @@ bool isBootstrapType(OUString const & name) { + "com.sun.star.reflection.XMethodParameter", + "com.sun.star.reflection.XStructTypeDescription", + "com.sun.star.reflection.XTypeDescription", ++ "com.sun.star.reflection.XTypeDescriptionEnumeration", + "com.sun.star.reflection.XTypeDescriptionEnumerationAccess", + "com.sun.star.reflection.XUnionTypeDescription", ++ "com.sun.star.registry.RegistryKeyType", ++ "com.sun.star.registry.RegistryValueType", + "com.sun.star.registry.XImplementationRegistration", + "com.sun.star.registry.XRegistryKey", + "com.sun.star.registry.XSimpleRegistry", + "com.sun.star.security.RuntimePermission", ++ "com.sun.star.security.XAccessControlContext", + "com.sun.star.security.XAccessController", ++ "com.sun.star.security.XAction", + "com.sun.star.uno.DeploymentException", + "com.sun.star.uno.RuntimeException", ++ "com.sun.star.uno.TypeClass", ++ "com.sun.star.uno.Uik", ++ "com.sun.star.uno.XAdapter", + "com.sun.star.uno.XAggregation", + "com.sun.star.uno.XComponentContext", + "com.sun.star.uno.XCurrentContext", ++ "com.sun.star.uno.XInterface", ++ "com.sun.star.uno.XReference", + "com.sun.star.uno.XUnloadingPreference", + "com.sun.star.uno.XWeak", + "com.sun.star.util.XMacroExpander" }; +@@ -1519,17 +1545,6 @@ void InterfaceType::dumpMethodsCppuDecl( + entity_->getDirectMethods().begin()); + i != entity_->getDirectMethods().end(); ++i) + { +- if (seen->insert(i->returnType).second) { +- dumpCppuGetType(out, i->returnType); +- } +- for (std::vector< unoidl::InterfaceTypeEntity::Method::Parameter >:: +- const_iterator j(i->parameters.begin()); +- j != i->parameters.end(); ++j) +- { +- if (seen->insert(j->type).second) { +- dumpCppuGetType(out, j->type); +- } +- } + for (std::vector< OUString >::const_iterator j(i->exceptions.begin()); + j != i->exceptions.end(); ++j) + { +-- +1.8.3.1 + diff --git a/libreoffice.spec b/libreoffice.spec index 46c2614..5519779 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -259,6 +259,7 @@ Patch18: 0001-Resolves-rhbz-1006850-crash-in-SwCommentRuler-GetCom.patch Patch19: 0001-select-sheet-menu-as-a-right-click-popup-to-the-prev.patch Patch20: 0001-Avoid-crash-when-a-comment-contains-data-but-no-text.patch Patch21: 0001-Resolves-rhbz-1013480-crash-in-EditLineList-operator.patch +Patch22: 0001-rhbz-1014010-Missing-dependencies-in-isBootstrapType.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -1012,6 +1013,7 @@ mv -f redhat.soc extras/source/palettes/standard.soc %patch19 -p1 -b .select-sheet-menu-as-a-right-click-popup-to-the-prev.patch %patch20 -p1 -b .Avoid-crash-when-a-comment-contains-data-but-no-text.patch %patch21 -p1 -b .rhbz-1013480-crash-in-EditLineList-operator.patch +%patch22 -p1 -b .rhbz-1014010-Missing-dependencies-in-isBootstrapType.patch # TODO: check this # these are horribly incomplete--empty translations and copied english @@ -2104,6 +2106,7 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %changelog * Tue Oct 01 2013 Caolán McNamara - 1:4.1.2.3-2-UNBUILT - Resolves: rhbz#1013480 crash in EditLineList::operator[] +- Resolves: rhbz#1014010 crash on start up * Mon Sep 30 2013 David Tardon - 1:4.1.2.3-1 - 4.1.2 rc3