[Libreoffice-commits] core.git: 9 commits - bin/run framework/source Repository.mk sc/inc scp2/AutoInstall.mk scp2/InstallModule_quickstart.mk scp2/source sc/source shell/Module_shell.mk solenv/gbuild sw/source

Michael Stahl mstahl at redhat.com
Fri Oct 31 10:04:05 PDT 2014


 Repository.mk                                 |   57 +++++++++++-----------
 bin/run                                       |   24 +++++++++
 framework/source/uielement/toolbarmanager.cxx |   14 ++++-
 sc/inc/cellsuno.hxx                           |    1 
 sc/source/ui/unoobj/cellsuno.cxx              |   28 +++++++++-
 scp2/AutoInstall.mk                           |    3 -
 scp2/InstallModule_quickstart.mk              |    4 +
 scp2/source/gnome/module_gnome.scp            |    4 -
 scp2/source/ooo/file_library_ooo.scp          |   21 --------
 scp2/source/ooo/file_ooo.scp                  |   47 ------------------
 scp2/source/ooo/module_ooo.scp                |    3 -
 scp2/source/quickstart/file_quickstart.scp    |   26 ----------
 scp2/source/quickstart/module_quickstart.scp  |    4 +
 shell/Module_shell.mk                         |    2 
 solenv/gbuild/Helper.mk                       |   67 +++++++++++++++++++-------
 sw/source/uibase/uno/SwXDocumentSettings.cxx  |    5 +
 16 files changed, 155 insertions(+), 155 deletions(-)

New commits:
commit fc9e78f4498a3b44be72e13c0c64d235f62b8a99
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Oct 31 17:51:46 2014 +0100

    framework: avoid double-free in ToolBarManager()
    
    The timer could run after the ToolBarManager is deleted because the
    dispose() method can accidentally restart the timer somehow.
    
    Change-Id: I86868f08f436976761e814d4cea1cd5a0e348935

diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index e00a974..bac2210 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -243,6 +243,7 @@ ToolBarManager::ToolBarManager( const Reference< XComponentContext >& rxContext,
 
 ToolBarManager::~ToolBarManager()
 {
+    assert(!m_aAsyncUpdateControllersTimer.IsActive());
     OSL_ASSERT( m_pToolBar == 0 );
     OSL_ASSERT( !m_bAddedToTaskPaneList );
 }
@@ -475,7 +476,9 @@ throw ( RuntimeException, std::exception )
 {
     SolarMutexGuard g;
     if ( Action.Action == FrameAction_CONTEXT_CHANGED )
+    {
         m_aAsyncUpdateControllersTimer.Start();
+    }
 }
 
 void SAL_CALL ToolBarManager::statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event )
@@ -563,9 +566,6 @@ void SAL_CALL ToolBarManager::dispose() throw( RuntimeException, std::exception
     {
         SolarMutexGuard g;
 
-        // stop timer to prevent timer events after dispose
-        m_aAsyncUpdateControllersTimer.Stop();
-
         RemoveControllers();
 
         if ( m_xDocImageManager.is() )
@@ -629,6 +629,10 @@ void SAL_CALL ToolBarManager::dispose() throw( RuntimeException, std::exception
         m_xModuleAcceleratorManager.clear();
         m_xDocAcceleratorManager.clear();
 
+        // stop timer to prevent timer events after dispose
+        // do it last because other calls could restart timer in StateChanged()
+        m_aAsyncUpdateControllersTimer.Stop();
+
         m_bDisposed = true;
     }
 }
@@ -1412,7 +1416,9 @@ void ToolBarManager::FillToolbar( const Reference< XIndexAccess >& rItemContaine
     if( m_pToolBar->WillUsePopupMode() )
         UpdateControllers();
     else if ( m_pToolBar->IsReallyVisible() )
+    {
         m_aAsyncUpdateControllersTimer.Start();
+    }
 
     // Try to retrieve UIName from the container property set and set it as the title
     // if it is not empty.
@@ -2038,7 +2044,9 @@ IMPL_LINK( ToolBarManager, StateChanged, StateChangedType*, pStateChangedType )
     else if ( *pStateChangedType == StateChangedType::VISIBLE )
     {
         if ( m_pToolBar->IsReallyVisible() )
+        {
             m_aAsyncUpdateControllersTimer.Start();
+        }
     }
     else if ( *pStateChangedType == StateChangedType::INITSHOW )
     {
commit 03cca068ed901d1862c440a6f414d17609785974
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Oct 31 12:35:53 2014 +0100

    i#90076: avoid double-free race condition for ScCellRangesBase
    
    This is similar to fdo#72695, just with SfxBroadcaster in Calc.
    Solve it in a similar way, by putting a WeakReference to "this" into the
    UNO object so its Notify() can return if another thread is already in
    the dtor waiting for the SolarMutex.
    
    ==11581==ERROR: AddressSanitizer: heap-use-after-free on address 0x6170006fdb08 at pc 0x2b2c4f5b8e3e bp 0x2b2c0b2ad9f0 sp 0x2b2c0b2ad9e8
    READ of size 8 at 0x6170006fdb08 thread T262 (cppu_threadpool)
        #0 0x2b2c4f5b8e3d in ScCellRangesBase::~ScCellRangesBase() /sc/source/ui/unoobj/cellsuno.cxx:1448
        #1 0x2b2c4f643914 in ScCellRangeObj::~ScCellRangeObj() /sc/source/ui/unoobj/cellsuno.cxx:4751
        #2 0x2b2c4f697624 in ScCellObj::~ScCellObj() /sc/source/ui/unoobj/cellsuno.cxx:6053
        #3 0x2b2c4f69648d in ScCellObj::~ScCellObj() /sc/source/ui/unoobj/cellsuno.cxx:6052
        #4 0x2b2c4f69661f in non-virtual thunk to ScCellObj::~ScCellObj() /sc/source/ui/unoobj/cellsuno.cxx:6053
        #5 0x2b2b2c58b6af in cppu::OWeakObject::release() /cppuhelper/source/weak.cxx:204
        #6 0x2b2c4f5c50ff in ScCellRangesBase::release() /sc/source/ui/unoobj/cellsuno.cxx:1752
        #7 0x2b2c4f64de58 in ScCellRangeObj::release() /sc/source/ui/unoobj/cellsuno.cxx:4800
        #8 0x2b2c4f6a2c08 in ScCellObj::release() /sc/source/ui/unoobj/cellsuno.cxx:6093
        #9 0x2b2c4f6a5f0f in non-virtual thunk to ScCellObj::release() /sc/source/ui/unoobj/cellsuno.cxx:6094
        #10 0x2b2c053b96fb in bridges::cpp_uno::shared::freeUnoInterfaceProxy(_uno_ExtEnvironment*, void*) /bridges/source/cpp_uno/shared/unointerfaceproxy.cxx:43
        #11 0x2b2b2bae80fb in (anonymous namespace)::s_stub_defenv_revokeInterface(__va_list_tag (*) [1]) /cppu/source/uno/lbenv.cxx:383
    
    0x6170006fdb08 is located 264 bytes inside of 728-byte region [0x6170006fda00,0x6170006fdcd8)
    freed by thread T264 (cppu_threadpool) here:
        #3 0x2b2c49c980f5 in cppu::OWeakObject::operator delete(void*) /include/cppuhelper/weak.hxx:87
        #4 0x2b2c4f5b840a in ScCellRangesBase::~ScCellRangesBase() /sc/source/ui/unoobj/cellsuno.cxx:1442
        #5 0x2b2c4f5b858f in non-virtual thunk to ScCellRangesBase::~ScCellRangesBase() /sc/source/ui/unoobj/cellsuno.cxx:1458
        #6 0x2b2b2c58b6af in cppu::OWeakObject::release() /cppuhelper/source/weak.cxx:204
        #7 0x2b2c4f5c50ff in ScCellRangesBase::release() /sc/source/ui/unoobj/cellsuno.cxx:1752
        #8 0x2b2c4f5c65ff in non-virtual thunk to ScCellRangesBase::release() /sc/source/ui/unoobj/cellsuno.cxx:1753
        #9 0x2b2c4af84583 in com::sun::star::uno::Reference<com::sun::star::uno::XInterface>::~Reference() /include/com/sun/star/uno/Reference.hxx:104
        #10 0x2b2c4f5bc66f in ScCellRangesBase::Notify(SfxBroadcaster&, SfxHint const&) /sc/source/ui/unoobj/cellsuno.cxx:1570
        #11 0x2b2c4f5bdf0d in non-virtual thunk to ScCellRangesBase::Notify(SfxBroadcaster&, SfxHint const&) /sc/source/ui/unoobj/cellsuno.cxx:1645
        #12 0x2b2b31dda705 in SfxBroadcaster::Broadcast(SfxHint const&) /svl/source/notify/SfxBroadcaster.cxx:41
        #13 0x2b2c4b03f2e4 in ScDocument::InsertTab(short, rtl::OUString const&, bool, bool) /sc/source/core/data/document.cxx:510
        #14 0x2b2c4e7ed861 in ScDocFunc::InsertTable(short, rtl::OUString const&, bool, bool) /sc/source/ui/docshell/docfunc.cxx:3007
        #15 0x2b2c50b1f415 in ScViewFunc::InsertTable(rtl::OUString const&, short, bool) /sc/source/ui/view/viewfun2.cxx:1855
        #16 0x2b2c502e075f in ScDBFunc::ShowDataPilotSourceData(ScDPObject&, com::sun::star::uno::Sequence<com::sun::star::sheet::DataPilotFieldFilter> const&) /sc/source/ui/view/dbfunc3.cxx:2056
        #17 0x2b2c4fa8924d in ScDataPilotTableObj::insertDrillDownSheet(com::sun::star::table::CellAddress const&) /sc/source/ui/unoobj/dapiuno.cxx:1286
    
    Change-Id: I4cd0fca46b9b81311bddfab2229ab9abf4c06c4e

diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx
index 7408ee2..0ec4e6c 100644
--- a/sc/inc/cellsuno.hxx
+++ b/sc/inc/cellsuno.hxx
@@ -175,6 +175,7 @@ class SC_DLLPUBLIC ScCellRangesBase : public com::sun::star::beans::XPropertySet
     friend class ooo::vba::excel::ScVbaCellRangeAccess;
 
 private:
+    css::uno::WeakReference<css::uno::XInterface> m_wThis;
     const SfxItemPropertySet* pPropSet;
     ScDocShell*             pDocShell;
     ScLinkListener*         pValueListener;
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 9280d96..7a50745 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1401,6 +1401,15 @@ ScCellRangesBase::ScCellRangesBase(ScDocShell* pDocSh, const ScRange& rR) :
     bGotDataChangedHint( false ),
     aValueListeners( 0 )
 {
+    // this is a hack to get m_wThis initialized; ideally there would be
+    // factory functions doing this but there are so many subclasses of this...
+    ++m_refCount;
+    {
+        m_wThis = uno::Reference<uno::XInterface>(
+                    static_cast<cppu::OWeakObject*>(this));
+    }
+    --m_refCount;
+
     ScRange aCellRange(rR);
     aCellRange.Justify();
     aRanges.Append( aCellRange );
@@ -1430,6 +1439,15 @@ ScCellRangesBase::ScCellRangesBase(ScDocShell* pDocSh, const ScRangeList& rR) :
     bGotDataChangedHint( false ),
     aValueListeners( 0 )
 {
+    // this is a hack to get m_wThis initialized; ideally there would be
+    // factory functions doing this but there are so many subclasses of this...
+    ++m_refCount;
+    {
+        m_wThis = uno::Reference<uno::XInterface>(
+                    static_cast<cppu::OWeakObject*>(this));
+    }
+    --m_refCount;
+
     if (pDocShell)  // Null if created with createInstance
     {
         ScDocument& rDoc = pDocShell->GetDocument();
@@ -1529,6 +1547,11 @@ const ScMarkData* ScCellRangesBase::GetMarkData()
 
 void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
+    uno::Reference<uno::XInterface> const xThis(m_wThis);
+    if (!xThis.is())
+    {   // fdo#72695: if UNO object is already dead, don't revive it with event
+        return;
+    }
     if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         const ScUpdateRefHint& rRef = static_cast<const ScUpdateRefHint&>(rHint);
@@ -1541,12 +1564,9 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
         if ( aRanges.UpdateReference( rRef.GetMode(), &rDoc, rRef.GetRange(),
                                     rRef.GetDx(), rRef.GetDy(), rRef.GetDz() ) )
         {
-            // i#90076; the object "this" was destroyed after calling ScTableSheetObj::getImplementation
-            // this hack make sure that the object lives a bit longer
-            uno::Reference<uno::XInterface> xInterface((cppu::OWeakObject*)this, uno::UNO_QUERY);
             if (  rRef.GetMode() == URM_INSDEL
                && aRanges.size() == 1
-               && ScTableSheetObj::getImplementation( xInterface )
+               && ScTableSheetObj::getImplementation(xThis)
                )
             {
                 // #101755#; the range size of a sheet does not change
commit 21a5dc2ac524815a7b80fa54cd28a7b49aae6d5f
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 23:52:56 2014 +0100

    gbuild: enforce AutoInstall for Library, Executable, Jar
    
    ... by disallowing usage of gb_Helper_register_* without _for_install
    for layers that imply installation.
    
    Change-Id: I5734b2d6fbc57196633a562dd5df0236cc290ca6

diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index 398b2f7..943cce3 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -92,8 +92,14 @@ $(2)_$(1).clean : $(if $(4),$(4),$(call gb_$(2)_get_clean_target,$(1)))
 endef
 
 define gb_Helper_init_registries
+gb_Executable_VALIDGROUPS_INSTALLED := UREBIN SDK OOO
+gb_Executable_VALIDGROUPS_NOTINSTALLED := NONE
 gb_Executable_VALIDGROUPS := UREBIN SDK OOO NONE
-gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO PRIVATELIBS_URE RTVERLIBS UNOVERLIBS EXTENSIONLIBS PLAINLIBS_SHLXTHDL
+gb_Library_VALIDGROUPS_INSTALLED := OOOLIBS PLAINLIBS_URE PLAINLIBS_OOO PRIVATELIBS_URE RTVERLIBS UNOVERLIBS PLAINLIBS_SHLXTHDL
+gb_Library_VALIDGROUPS_NOTINSTALLED := PLAINLIBS_NONE EXTENSIONLIBS
+gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_URE PLAINLIBS_OOO PRIVATELIBS_URE RTVERLIBS UNOVERLIBS PLAINLIBS_SHLXTHDL PLAINLIBS_NONE EXTENSIONLIBS
+gb_Jar_VALIDGROUPS_INSTALLED := URE OOO
+gb_Jar_VALIDGROUPS_NOTINSTALLED := OXT NONE
 gb_Jar_VALIDGROUPS := URE OOO OXT NONE
 
 $$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(eval gb_Executable_$$(group) :=))
@@ -117,10 +123,7 @@ $(foreach group,$(gb_Executable_VALIDGROUPS),\
 
 endef
 
-define gb_Helper_register_executables
-ifeq ($$(filter $(1),$$(gb_Executable_VALIDGROUPS)),)
-$$(eval $$(call gb_Output_error,$(1) is not a valid group for executables. Valid groups are: $$(gb_Executable_VALIDGROUPS)))
-endif
+define gb_Helper__register_executables
 $(foreach group,$(gb_Executable_VALIDGROUPS),\
  $(foreach target,$(2),\
   $(if $(filter $(target),$(gb_Executable_$(group))),\
@@ -132,18 +135,28 @@ gb_Executable_$(1) += $(2)
 
 endef
 
+# $(call gb_Helper_register_executables,layer,exes)
+define gb_Helper_register_executables
+ifeq ($$(filter $(1),$$(gb_Executable_VALIDGROUPS_NOTINSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for executables that are not installed. Valid groups are: $$(gb_Executable_VALIDGROUPS_NOTINSTALLED). Use gb_Helper_register_executables_for_install for installed executables.))
+endif
+$(call gb_Helper__register_executables,$(1),$(2))
+
+endef
+
+# $(call gb_Helper_register_executables_for_install,layer,installmodule,exes)
 define gb_Helper_register_executables_for_install
 $(if $(3),,$(call gb_Output_error,gb_Helper_register_executables_for_install: no executables - need 3 parameters))
-$(call gb_Helper_register_executables,$(1),$(3))
+ifeq ($$(filter $(1),$$(gb_Executable_VALIDGROUPS_INSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for installed executables. Valid groups are: $$(gb_Executable_VALIDGROUPS_INSTALLED). Use gb_Helper_register_executables for executables that are not installed.))
+endif
+$(call gb_Helper__register_executables,$(1),$(3))
 
 gb_Executable_MODULE_$(2) += $(3)
 
 endef
 
-define gb_Helper_register_libraries
-ifeq ($$(filter $(1),$$(gb_Library_VALIDGROUPS)),)
-$$(eval $$(call gb_Output_error,$(1) is not a valid group for libraries. Valid groups are: $$(gb_Library_VALIDGROUPS)))
-endif
+define gb_Helper__register_libraries
 $(foreach group,$(gb_Library_VALIDGROUPS),\
  $(foreach target,$(2),\
   $(if $(filter $(target),$(gb_Library_$(group))),\
@@ -155,12 +168,25 @@ gb_Library_$(1) += $(2)
 
 endef
 
+# $(call gb_Helper_register_libraries,layer,libs)
+define gb_Helper_register_libraries
+ifeq ($$(filter $(1),$$(gb_Library_VALIDGROUPS_NOTINSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for libraries that are not installed. Valid groups are: $$(gb_Library_VALIDGROUPS_NOTINSTALLED). Use gb_Helper_register_libraries_for_install for installed libraries.))
+endif
+$(call gb_Helper__register_libraries,$(1),$(2))
+
+endef
+
 # the first argument is the group, which sets rpaths etc.
 # the second argument is the install module, which describes in which distro package/msi a lib should show up
 # UGLY: for versioned libraries "sdk" module is hard-coded for now
+# $(call gb_Helper_register_libraries_for_install,layer,installmodule,libs)
 define gb_Helper_register_libraries_for_install
 $(if $(3),,$(call gb_Output_error,gb_Helper_register_libraries_for_install: no libraries - need 3 parameters))
-$(call gb_Helper_register_libraries,$(1),$(3))
+ifeq ($$(filter $(1),$$(gb_Library_VALIDGROUPS_INSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for installed libraries. Valid groups are: $$(gb_Library_VALIDGROUPS_INSTALLED). Use gb_Helper_register_libraries for libraries that are not installed.))
+endif
+$(call gb_Helper__register_libraries,$(1),$(3))
 
 gb_Library_MODULE_$(2) += $(filter-out $(gb_MERGEDLIBS) $(gb_URELIBS),$(3))
 
@@ -169,10 +195,7 @@ $(if $(filter UNOVERLIBS RTVERLIBS,$(1)),\
 
 endef
 
-define gb_Helper_register_jars
-ifeq ($$(filter $(1),$$(gb_Jar_VALIDGROUPS)),)
-$$(eval $$(call gb_Output_error,$(1) is not a valid group for jars. Valid groups are: $$(gb_Jar_VALIDGROUPS)))
-endif
+define gb_Helper__register_jars
 $(foreach group,$(gb_Jar_VALIDGROUPS),\
  $(foreach target,$(2),\
   $(if $(filter $(target),$(gb_Jar_$(group))),\
@@ -184,10 +207,22 @@ gb_Jar_$(1) += $(2)
 
 endef
 
+# $(call gb_Helper_register_jars,layer,jars)
+define gb_Helper_register_jars
+ifeq ($$(filter $(1),$$(gb_Jar_VALIDGROUPS_NOTINSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for jars that are not installed. Valid groups are: $$(gb_Jar_VALIDGROUPS_NOTINSTALLED). Use gb_Helper_register_jars_for_install for installed jars.))
+endif
+$(call gb_Helper__register_jars,$(1),$(2))
+
+endef
+
 # $(call gb_Helper_register_jars_for_install,layer,installmodule,jars)
 define gb_Helper_register_jars_for_install
 $(if $(3),,$(call gb_Output_error,gb_Helper_register_jars_for_install: no jars - need 3 parameters))
-$(call gb_Helper_register_jars,$(1),$(3))
+ifeq ($$(filter $(1),$$(gb_Jar_VALIDGROUPS_INSTALLED)),)
+$$(eval $$(call gb_Output_error,$(1) is not a valid group for installed jars. Valid groups are: $$(gb_Jar_VALIDGROUPS_INSTALLED). Use gb_Helper_register_jars for jars that are not installed.))
+endif
+$(call gb_Helper__register_jars,$(1),$(3))
 
 gb_Jar_MODULE_$(2) += $(3)
 
commit ad43a1707353cdef79f6eb2fbc3da1a48838f6e4
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 23:05:17 2014 +0100

    Repository.mk: move mobile-only libraries to NONE layer
    
    Change-Id: Iae0c3fc429c74713662f1a75ef0a2150700274c7

diff --git a/Repository.mk b/Repository.mk
index 62561ca..f879375 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -194,13 +194,12 @@ $(eval $(call gb_Helper_register_executables_for_install,UREBIN,ure,\
 
 ifneq (,$(filter ANDROID IOS,$(OS)))
 
-$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
+# these are in NONE layer because
+# a) scp2 is not used on mobile b) layers don't mean anything on mobile
+$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE, \
 	$(if $(filter $(OS),ANDROID), \
 		lo-bootstrap \
 	) \
-))
-
-$(eval $(call gb_Helper_register_libraries,OOOLIBS, \
 	libotouch \
 ))
 
commit 30c237aef724591a8804f62eb05bae3101461f5a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 22:59:02 2014 +0100

    Repository.mk: move executables that are not installed to NONE layer
    
    Change-Id: I494349840e5b95a7c9f477a4b3133d1a2318ab7e

diff --git a/Repository.mk b/Repository.mk
index 811ed6d..62561ca 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -67,6 +67,11 @@ $(eval $(call gb_Helper_register_executables,NONE, \
         svptest \
         svpclient \
         pixelctl ) \
+	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), tilebench) \
+	$(if $(filter LINUX MACOSX WNT,$(OS)),icontest) \
+	vcldemo \
+	tiledrendering \
+	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
 ))
 
 $(eval $(call gb_Helper_register_executables_for_install,SDK,sdk, \
@@ -180,15 +185,6 @@ $(eval $(call gb_Helper_register_executables_for_install,OOO,pdfimport, \
 ))
 endif
 
-$(eval $(call gb_Helper_register_executables,OOO, \
-	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), tilebench) \
-	$(if $(filter LINUX MACOSX WNT,$(OS)), \
-		icontest) \
-	vcldemo \
-	tiledrendering \
-	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
-))
-
 $(eval $(call gb_Helper_register_executables_for_install,UREBIN,ure,\
 	$(if $(and $(ENABLE_JAVA),$(filter-out MACOSX WNT,$(OS)),$(filter DESKTOP,$(BUILD_TYPE))),javaldx) \
 	regmerge \
commit e37837c48b739d0a6654b03cddf8f97a753f0af1
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Oct 31 14:41:02 2014 +0100

    bin/run: add a convenient shell wrapper to run executables from workdir
    
    Change-Id: Ide3361fd5eba6462095cc45c0c99b1ab27a16262

diff --git a/bin/run b/bin/run
new file mode 100755
index 0000000..365e287
--- /dev/null
+++ b/bin/run
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# simple wrapper script to run non-installed executables from workdir
+
+dir=$(realpath "$(pwd)")
+
+while test ! -d "${dir}/instdir/program" ; do
+    if test "${dir}" = "/"; then
+        echo "error: cannot find \"program\" dir from \"$(pwd)\""
+        exit 1
+    fi
+    dir=$(realpath "${dir}/..")
+done
+
+exedir="${dir}"/workdir/LinkTarget/Executable
+export URE_BOOTSTRAP=file://"${dir}"/instdir/program/fundamentalrc
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"${dir}"/instdir/ure/lib:"${dir}"/instdir/program
+
+echo "setting URE_BOOTSTRAP to: ${URE_BOOTSTRAP}"
+echo "setting search path to: ${LD_LIBRARY_PATH}"
+echo "execing: ${exedir}/$1"
+
+cd "${dir}"/instdir/program
+exec "${exedir}"/$@
commit f049b83cc2947efbe7382f23e12fc91fe50a589d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 22:57:06 2014 +0100

    scp2: move WNT executables to AutoInstall
    
    Change-Id: I3e541053faf956dc0cd2a3f068cd93b73fcaab6d

diff --git a/Repository.mk b/Repository.mk
index b094828..811ed6d 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -141,7 +141,16 @@ $(eval $(call gb_Helper_register_executables_for_install,OOO,ooo, \
 	$(if $(filter unx-TRUE,$(GUIBASE)-$(ENABLE_TDE)),tdefilepicker) \
 	$(if $(filter unx,$(GUIBASE)),uri-encode) \
 	ui-previewer \
+	$(if $(filter WNT,$(OS)), \
+		senddoc \
+	) \
+))
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_Helper_register_executables_for_install,OOO,quickstart, \
+	quickstart \
 ))
+endif
 
 ifneq ($(ENABLE_CRASHDUMP),)
 $(eval $(call gb_Helper_register_executables_for_install,OOO,crashrep, \
@@ -178,10 +187,6 @@ $(eval $(call gb_Helper_register_executables,OOO, \
 	vcldemo \
 	tiledrendering \
 	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
-	$(if $(filter WNT,$(OS)), \
-		quickstart \
-		senddoc \
-	) \
 ))
 
 $(eval $(call gb_Helper_register_executables_for_install,UREBIN,ure,\
diff --git a/scp2/AutoInstall.mk b/scp2/AutoInstall.mk
index 72a6340..9ab563b 100644
--- a/scp2/AutoInstall.mk
+++ b/scp2/AutoInstall.mk
@@ -35,6 +35,7 @@ $(eval $(call gb_AutoInstall_add_module,ooobinarytable,LIBO_LIB_FILE_BINARYTABLE
 $(eval $(call gb_AutoInstall_add_module,python,LIBO_LIB_FILE,LIBO_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,postgresqlsdbc,LIBO_LIB_FILE))
 $(eval $(call gb_AutoInstall_add_module,pdfimport,LIBO_LIB_FILE,LIBO_EXECUTABLE))
+$(eval $(call gb_AutoInstall_add_module,quickstart,,LIBO_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,reportbuilder,LIBO_LIB_FILE,,LIBO_JAR_FILE))
 $(eval $(call gb_AutoInstall_add_module,sdk,,SDK_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,tde,LIBO_LIB_FILE))
diff --git a/scp2/InstallModule_quickstart.mk b/scp2/InstallModule_quickstart.mk
index 3d9be72..c29768c 100644
--- a/scp2/InstallModule_quickstart.mk
+++ b/scp2/InstallModule_quickstart.mk
@@ -9,6 +9,10 @@
 
 $(eval $(call gb_InstallModule_InstallModule,scp2/quickstart))
 
+$(eval $(call gb_installmodule_use_auto_install_libs,scp2/quickstart,\
+	quickstart \
+))
+
 $(eval $(call gb_InstallModule_add_scpfiles,scp2/quickstart,\
     scp2/source/quickstart/file_quickstart \
     scp2/source/quickstart/registryitem_quickstart \
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 7e6187f..ce9d533 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -165,13 +165,6 @@ File gid_File_Bin_Senddoc
     Name = "shell_senddoc.filelist";
     Styles = (FILELIST, PACKED);
 End
-#elif defined WNT
-File gid_File_Bin_Senddoc
-    BIN_FILE_BODY;
-    Dir = gid_Brand_Dir_Program;
-    Name = "senddoc.exe";
-    Styles = (PACKED);
-End
 #endif
 
 File gid_File_framework_dtd
diff --git a/scp2/source/quickstart/file_quickstart.scp b/scp2/source/quickstart/file_quickstart.scp
deleted file mode 100644
index 51e2d8b..0000000
--- a/scp2/source/quickstart/file_quickstart.scp
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "macros.inc"
-
-File gid_File_Exe_Quickstart
-    BIN_FILE_BODY;
-    Styles = (PACKED);
-    Dir = gid_Brand_Dir_Program;
-    Name = "quickstart.exe";
-End
diff --git a/scp2/source/quickstart/module_quickstart.scp b/scp2/source/quickstart/module_quickstart.scp
index 62407d8..1080526 100644
--- a/scp2/source/quickstart/module_quickstart.scp
+++ b/scp2/source/quickstart/module_quickstart.scp
@@ -18,10 +18,12 @@
 
 #include "macros.inc"
 
+#include "AutoInstall/quickstart"
+
 Module gid_Module_Optional_Quickstart
     MOD_NAME_DESC ( MODULE_OPTIONAL_QUICKSTART );
     Sortkey = "1400";
     Default = YES;
     ParentID = gid_Module_Optional;
-    Files = (gid_File_Exe_Quickstart, gid_File_Tmp_Userinstall_Quickstart_Inf);
+    Files = (auto_quickstart_ALL, gid_File_Tmp_Userinstall_Quickstart_Inf);
 End
commit 58735f060804248089c0919c67485ae78c462c36
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 22:43:27 2014 +0100

    scp2: move unix/gnome executables to AutoInstall
    
    Change-Id: I0e0c3b5e3f130093f430f47c1730580105718c1e

diff --git a/Repository.mk b/Repository.mk
index 7ca98ff..b094828 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -137,6 +137,10 @@ $(eval $(call gb_Helper_register_executables_for_install,OOO,writer_brand, \
 
 $(eval $(call gb_Helper_register_executables_for_install,OOO,ooo, \
 	gengal \
+	$(if $(filter unx-TRUE,$(GUIBASE)-$(ENABLE_NPAPI_FROM_BROWSER)),pluginapp.bin) \
+	$(if $(filter unx-TRUE,$(GUIBASE)-$(ENABLE_TDE)),tdefilepicker) \
+	$(if $(filter unx,$(GUIBASE)),uri-encode) \
+	ui-previewer \
 ))
 
 ifneq ($(ENABLE_CRASHDUMP),)
@@ -152,6 +156,15 @@ $(eval $(call gb_Helper_register_executables_for_install,OOO,python, \
 	) \
 ))
 
+ifeq ($(GUIBASE),unx)
+$(eval $(call gb_Helper_register_executables_for_install,OOO,gnome, \
+	gnome-open-url.bin \
+	$(if $(ENABLE_GTK),\
+		xid-fullscreen-on-all-monitors \
+	) \
+))
+endif
+
 ifneq ($(ENABLE_PDFIMPORT),)
 $(eval $(call gb_Helper_register_executables_for_install,OOO,pdfimport, \
 	xpdfimport \
@@ -160,16 +173,6 @@ endif
 
 $(eval $(call gb_Helper_register_executables,OOO, \
 	$(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), tilebench) \
-	gnome-open-url.bin \
-	$(if $(ENABLE_NPAPI_FROM_BROWSER),pluginapp.bin) \
-	$(if $(filter $(GUIBASE)$(ENABLE_GTK),unxTRUE), \
-		xid-fullscreen-on-all-monitors \
-	) \
-	$(if $(filter $(GUIBASE)$(ENABLE_TDE),unxTRUE), \
-		tdefilepicker \
-	) \
-	uri-encode \
-	ui-previewer \
 	$(if $(filter LINUX MACOSX WNT,$(OS)), \
 		icontest) \
 	vcldemo \
diff --git a/scp2/AutoInstall.mk b/scp2/AutoInstall.mk
index 0cd2268..72a6340 100644
--- a/scp2/AutoInstall.mk
+++ b/scp2/AutoInstall.mk
@@ -21,7 +21,7 @@ $(eval $(call gb_AutoInstall_add_module,crashrep,,LIBO_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,draw_brand,,LIBO_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,extensions_bsh,,,LIBO_JAR_FILE))
 $(eval $(call gb_AutoInstall_add_module,extensions_rhino,,,LIBO_JAR_FILE))
-$(eval $(call gb_AutoInstall_add_module,gnome,LIBO_LIB_FILE))
+$(eval $(call gb_AutoInstall_add_module,gnome,LIBO_LIB_FILE,LIBO_EXECUTABLE))
 $(eval $(call gb_AutoInstall_add_module,graphicfilter,LIBO_LIB_FILE))
 $(eval $(call gb_AutoInstall_add_module,impress,LIBO_LIB_FILE))
 $(eval $(call gb_AutoInstall_add_module,impress_brand,,LIBO_EXECUTABLE))
diff --git a/scp2/source/gnome/module_gnome.scp b/scp2/source/gnome/module_gnome.scp
index c124441..91d0a00 100644
--- a/scp2/source/gnome/module_gnome.scp
+++ b/scp2/source/gnome/module_gnome.scp
@@ -33,9 +33,7 @@ Module gid_Module_Optional_Gnome
 #if (defined ENABLE_GNOMEVFS && defined ENABLE_LOCKDOWN) || defined ENABLE_GIO
       gid_File_Share_Registry_Gnome_Xcd,
 #endif
-      gid_File_Bin_Gnome_Open_Url,
-      gid_File_Bin_Gnome_Open_Url_Bin,
-      gid_File_Bin_XidFullscreen
+      gid_File_Bin_Gnome_Open_Url
     );
 End
 
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 21b0538..a71dff4 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -71,27 +71,6 @@ End
 
 #endif
 
-#if defined UNX && ! defined MACOSX
-#ifdef ENABLE_TDE
-File gid_File_Bin_TdeFilePicker
-    BIN_FILE_BODY;
-    Styles = (PACKED);
-    Dir = gid_Brand_Dir_Program;
-    Name = "tdefilepicker";
-End
-#endif
-
-#ifdef ENABLE_GTK
-File gid_File_Bin_XidFullscreen
-    BIN_FILE_BODY;
-    Styles = (PACKED);
-    Dir = gid_Brand_Dir_Program;
-    Name = "xid-fullscreen-on-all-monitors";
-End
-#endif
-
-#endif
-
 #if defined WNT && !defined _gcc3 && defined WITH_MOZAB4WIN
         // see common_brand.scp gid_Brand_File_Lib_Msvcp80 and
         // gid_Brand_File_Lib_Msvcr80
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 706a907..7e6187f 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -122,17 +122,6 @@ File gid_File_Basic_Tutorials
     Name = "wizards_basicsrvtutorials.filelist";
 End
 
-File gid_File_Bin_UIPreviewer
-    BIN_FILE_BODY;
-    Dir = gid_Brand_Dir_Program;
-    Styles = (PACKED);
-  #ifdef UNX
-    Name = "ui-previewer";
-  #else
-    Name = "ui-previewer.exe";
-  #endif
-End
-
 #if defined UNX && !defined MACOSX
 
 File gid_File_Script_Gengal
@@ -144,17 +133,6 @@ End
 
 #endif
 
-#if defined ENABLE_NPAPI_FROM_BROWSER && defined UNX && !defined MACOSX
-
-File gid_File_Bin_Pluginapp
-    BIN_FILE_BODY;
-    Dir = gid_Brand_Dir_Program;
-    Name = "pluginapp.bin";
-    Styles = (PACKED);
-End
-
-#endif
-
 #if defined UNX && ! defined MACOSX
 
 File gid_File_Bin_Gnome_Open_Url
@@ -164,13 +142,6 @@ File gid_File_Bin_Gnome_Open_Url
     Styles = (FILELIST, PACKED);
 End
 
-File gid_File_Bin_Gnome_Open_Url_Bin
-    BIN_FILE_BODY;
-    Dir = gid_Brand_Dir_Program;
-    Name = "gnome-open-url.bin";
-    Styles = (PACKED);
-End
-
 File gid_File_shell_scripts
     BIN_FILE_BODY;
     Dir = FILELIST_DIR;
@@ -188,17 +159,6 @@ End
 #endif
 
 #if defined UNX && ! defined MACOSX
-
-File gid_File_Bin_Uri_Encode
-    BIN_FILE_BODY;
-    Dir = gid_Brand_Dir_Program;
-    Name = "uri-encode";
-    Styles = (PACKED);
-End
-
-#endif
-
-#if defined UNX && ! defined MACOSX
 File gid_File_Bin_Senddoc
     BIN_FILE_BODY;
     Dir = FILELIST_DIR;
diff --git a/scp2/source/ooo/module_ooo.scp b/scp2/source/ooo/module_ooo.scp
index b93e685..e70e471 100644
--- a/scp2/source/ooo/module_ooo.scp
+++ b/scp2/source/ooo/module_ooo.scp
@@ -24,11 +24,8 @@ Module gid_Module_Root
     InstallOrder = "20";
     MOD_NAME_DESC(MODULE_ROOT_OSL);
     Files = (gid_File_shell_scripts,
-             gid_File_Bin_Pluginapp,
              gid_File_Bin_Senddoc,
              gid_File_Script_Gengal,
-             gid_File_Bin_Uri_Encode,
-             gid_File_Bin_UIPreviewer,
              gid_File_Txt_Pagein_Common,
              gid_File_Txt_Pagein_Calc,
              gid_File_Txt_Pagein_Draw,
diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk
index 98f6c87..4a291de 100644
--- a/shell/Module_shell.mk
+++ b/shell/Module_shell.mk
@@ -115,6 +115,7 @@ ifneq ($(filter-out MACOSX WNT,$(OS)),)
 
 $(eval $(call gb_Module_add_targets,shell,\
 	Executable_gnome_open_url \
+	Executable_uri_encode \
 	Library_recentfile \
 	Package_scripts \
 	Package_scripts_gnome \
@@ -126,7 +127,6 @@ endif
 ifneq ($(OS),WNT)
 
 $(eval $(call gb_Module_add_targets,shell,\
-	Executable_uri_encode \
 	Library_cmdmail \
 	Package_senddoc \
 ))
commit 6c778e0a9b80734becb52fe3d0799754393c4bc4
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Oct 30 20:06:12 2014 +0100

    sw: [loplugin:salbool]
    
    Change-Id: I7d8e2606f0518d489473a9824cb25b6bcd6a9bb2

diff --git a/sw/source/uibase/uno/SwXDocumentSettings.cxx b/sw/source/uibase/uno/SwXDocumentSettings.cxx
index b34dd65..aceed1f 100644
--- a/sw/source/uibase/uno/SwXDocumentSettings.cxx
+++ b/sw/source/uibase/uno/SwXDocumentSettings.cxx
@@ -1248,8 +1248,9 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
         break;
         case HANDLE_PROP_LINE_SPACING_SHRINKS_FIRST_LINE:
         {
-            sal_Bool bTmp = mpDoc->getIDocumentSettingAccess().get( IDocumentSettingAccess::PROP_LINE_SPACING_SHRINKS_FIRST_LINE);
-            rValue.setValue( &bTmp, ::getBooleanCppuType() );
+            bool const bTmp(mpDoc->getIDocumentSettingAccess().get(
+                IDocumentSettingAccess::PROP_LINE_SPACING_SHRINKS_FIRST_LINE));
+            rValue <<= bTmp;
         }
         break;
         default:


More information about the Libreoffice-commits mailing list