solenv/gbuild/InstallModule.mk | 2 +- solenv/gbuild/InternalUnoApi.mk | 6 +++++- solenv/gbuild/Package.mk | 11 ++++++++--- solenv/gbuild/UnoApi.mk | 4 ++-- ucb/source/inc/regexpmap.tpt | 35 ++++++++++++++++++++++++++++++++++- 5 files changed, 50 insertions(+), 8 deletions(-)
New commits: commit c5ec146a759cdbf7d38714ceb382fba1b59ce67a Author: Michael Stahl <mst...@redhat.com> Date: Thu Jun 7 14:04:06 2012 +0200 gbuild: introduce gb_Package_Package_internal: The gb_InternalUnoApi_set_xmlfile function creates a new package, which registers at the current Module, overwriting the InternalUnoApi targets set there and causing make clean not to clean the InternalUnoApi. Change-Id: I46e9b4437788a479701187334325fe1e065e612c (cherry picked from commit 31a353719851b08664b7f13ca59f39a993e66ba6) diff --git a/solenv/gbuild/InstallModule.mk b/solenv/gbuild/InstallModule.mk index c04e151..f1b9dbe 100644 --- a/solenv/gbuild/InstallModule.mk +++ b/solenv/gbuild/InstallModule.mk @@ -40,7 +40,7 @@ $(call gb_InstallModule_get_clean_target,%) : define gb_InstallModule_InstallModule $(call gb_InstallModuleTarget_InstallModuleTarget,$(1)) -$(call gb_Package_Package,$(1)_par,$(call gb_InstallModuleTarget_get_workdir,$(1))) +$(call gb_Package_Package_internal,$(1)_par,$(call gb_InstallModuleTarget_get_workdir,$(1))) $(call gb_InstallModule_get_target,$(1)) : $(call gb_InstallModuleTarget_get_target,$(1)) $(call gb_InstallModule_get_target,$(1)) : $(call gb_Package_get_target,$(1)_par) diff --git a/solenv/gbuild/InternalUnoApi.mk b/solenv/gbuild/InternalUnoApi.mk index f5c2aa2..a32984f 100644 --- a/solenv/gbuild/InternalUnoApi.mk +++ b/solenv/gbuild/InternalUnoApi.mk @@ -113,8 +113,12 @@ endef define gb_InternalUnoApi_set_xmlfile $(call gb_UnoApiTarget_set_xmlfile,$(1)_out,$(2)) -$(call gb_Package_Package,$(1)_xml,$(SRCDIR)) +$(call gb_Package_Package_internal,$(1)_xml,$(SRCDIR)) $(call gb_Package_add_file,$(1)_xml,xml/$(notdir $(2)),$(2)) +$(call gb_InternalUnoApi_get_target,$(1)) :| \ + $(call gb_Package_get_target,$(1)_xml) +$(call gb_InternalUnoApi_get_clean_target,$(1)) : \ + $(call gb_Package_get_clean_target,$(1)_xml) endef diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk index 02d447c..e1d199e 100644 --- a/solenv/gbuild/Package.mk +++ b/solenv/gbuild/Package.mk @@ -67,15 +67,20 @@ $(call gb_Package_get_target,%) : $(call gb_Output_announce,$*,$(true),PKG,2) mkdir -p $(dir $@) && touch $@ - -define gb_Package_Package +# for other targets that want to create Packages, does not register at Module +define gb_Package_Package_internal gb_Package_SOURCEDIR_$(1) := $(2) $(call gb_Package_get_clean_target,$(1)) : FILES := $(call gb_Package_get_target,$(1)) $(call gb_Package_get_preparation_target,$(1)) -$$(eval $$(call gb_Module_register_target,$(call gb_Package_get_target,$(1)),$(call gb_Package_get_clean_target,$(1)))) $(call gb_Package_get_target,$(1)) : $(call gb_Package_get_preparation_target,$(1)) endef +define gb_Package_Package +$(call gb_Package_Package_internal,$(1),$(2)) +$$(eval $$(call gb_Module_register_target,$(call gb_Package_get_target,$(1)),$(call gb_Package_get_clean_target,$(1)))) + +endef + define gb_Package_add_file $(call gb_Package_get_target,$(1)) : $(OUTDIR)/$(2) $(call gb_Package_get_clean_target,$(1)) : FILES += $(OUTDIR)/$(2) diff --git a/solenv/gbuild/UnoApi.mk b/solenv/gbuild/UnoApi.mk index 6455999..3619e9a 100644 --- a/solenv/gbuild/UnoApi.mk +++ b/solenv/gbuild/UnoApi.mk @@ -33,8 +33,8 @@ $(call gb_UnoApi_get_clean_target,%) : define gb_UnoApi_UnoApi $(call gb_UnoApiTarget_UnoApiTarget,$(1)) $(call gb_UnoApiHeadersTarget_UnoApiHeadersTarget,$(1)) -$(call gb_Package_Package,$(1)_idl,$(SRCDIR)) -$(call gb_Package_Package,$(1)_inc,$(call gb_UnoApiHeadersTarget_get_dir,$(1))) +$(call gb_Package_Package_internal,$(1)_idl,$(SRCDIR)) +$(call gb_Package_Package_internal,$(1)_inc,$(call gb_UnoApiHeadersTarget_get_dir,$(1))) $(call gb_UnoApiTarget_set_root,$(1),UCR) commit 20b7bf008b1dcdf402de81c19e3cbd1284048cb2 Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Jun 6 12:41:41 2012 +0200 Do not copy etc. singular iterator values. This also reverts previous attempts at fixing this, commits 33839f90e6f8275a584b483827585a6da05aab75 "ucb: try to fix weird STL assertion on tinderbox" and 6506af86b5e20a860c8d2d1dd578a22914df5f53 "ucb: second try to fix weird STL assertion on tinderbox." Change-Id: I89d0eb87fbd164c0a4cf24d60f225767cb2bfc1a (cherry picked from commit 9631f96acae6bd179d40ee343ce986296f490741) diff --git a/ucb/source/core/ucb.cxx b/ucb/source/core/ucb.cxx index fec9972..64a412b 100644 --- a/ucb/source/core/ucb.cxx +++ b/ucb/source/core/ucb.cxx @@ -399,7 +399,7 @@ UniversalContentBroker::registerContentProvider( { osl::MutexGuard aGuard(m_aMutex); - ProviderMap_Impl::iterator aIt(m_aProviders.end()); + ProviderMap_Impl::iterator aIt; try { aIt = m_aProviders.find(Scheme); @@ -445,7 +445,7 @@ void SAL_CALL UniversalContentBroker::deregisterContentProvider( { osl::MutexGuard aGuard(m_aMutex); - ProviderMap_Impl::iterator aMapIt(m_aProviders.end()); + ProviderMap_Impl::iterator aMapIt; try { aMapIt = m_aProviders.find(Scheme); diff --git a/ucb/source/inc/regexpmap.hxx b/ucb/source/inc/regexpmap.hxx index e023633..717a077 100644 --- a/ucb/source/inc/regexpmap.hxx +++ b/ucb/source/inc/regexpmap.hxx @@ -101,6 +101,8 @@ class RegexpMapIter: public RegexpMapConstIter< Val > friend class RegexpMap< Val >; // to access ctor public: + RegexpMapIter() {} + RegexpMapIter & operator ++(); RegexpMapIter operator ++(int); diff --git a/ucb/source/inc/regexpmap.tpt b/ucb/source/inc/regexpmap.tpt index 64abc37..b4e274a 100644 --- a/ucb/source/inc/regexpmap.tpt +++ b/ucb/source/inc/regexpmap.tpt @@ -74,11 +74,19 @@ public: typedef RegexpMapImpl< Val > MapImpl; typedef typename List< Val >::iterator ListIterator; + // Solaris needs these for the ctor... + + inline RegexpMapIterImpl(); + inline RegexpMapIterImpl(MapImpl * pTheMap, int nTheList, ListIterator aTheIndex); RegexpMapIterImpl(RegexpMapImpl< Val > * pTheMap, bool bBegin); + RegexpMapIterImpl(RegexpMapIterImpl const & rOther); + + RegexpMapIterImpl & operator =(RegexpMapIterImpl const & rOther); + bool operator ==(RegexpMapIterImpl const & rOther) const; RegexpMapImpl< Val > const * getMap() const { return m_pMap; } @@ -92,8 +100,6 @@ public: RegexpMapEntry< Val > & get(); private: - RegexpMapIterImpl(); // not implemented - mutable RegexpMapEntry< Val > m_aEntry; typename List< Val >::iterator m_aIndex; RegexpMapImpl< Val > * m_pMap; @@ -106,6 +112,14 @@ private: } template< typename Val > +inline RegexpMapIterImpl< Val >::RegexpMapIterImpl(): + m_aEntry(rtl::OUString(), 0), + m_pMap(0), + m_nList(-1), + m_bEntrySet(false) +{} + +template< typename Val > inline RegexpMapIterImpl< Val >::RegexpMapIterImpl(MapImpl * pTheMap, int nTheList, ListIterator aTheIndex): @@ -134,11 +148,10 @@ void RegexpMapIterImpl< Val >::setEntry() const //============================================================================ template< typename Val > RegexpMapIterImpl< Val >::RegexpMapIterImpl(RegexpMapImpl< Val > * pTheMap, - bool bBegin) - : m_aEntry(rtl::OUString(), 0) - , m_aIndex(pTheMap->m_aList[Regexp::KIND_DOMAIN].end()) - , m_pMap(pTheMap) - , m_bEntrySet(false) + bool bBegin): + m_aEntry(rtl::OUString(), 0), + m_pMap(pTheMap), + m_bEntrySet(false) { if (bBegin) { @@ -149,17 +162,47 @@ RegexpMapIterImpl< Val >::RegexpMapIterImpl(RegexpMapImpl< Val > * pTheMap, else { m_nList = Regexp::KIND_DOMAIN; + m_aIndex = m_pMap->m_aList[Regexp::KIND_DOMAIN].end(); } } //============================================================================ template< typename Val > +RegexpMapIterImpl< Val >::RegexpMapIterImpl(RegexpMapIterImpl const & rOther): + m_aEntry(rOther.m_aEntry), m_pMap(rOther.m_pMap), m_nList(rOther.m_nList), + m_bEntrySet(rOther.m_bEntrySet) +{ + if (m_nList != -1) + m_aIndex = rOther.m_aIndex; +} + +//============================================================================ +template< typename Val > +RegexpMapIterImpl< Val > & RegexpMapIterImpl< Val >::operator =( + RegexpMapIterImpl const & rOther) +{ + if (this != &rOther) + { + m_aEntry = rOther.m_aEntry; + m_pMap = rOther.m_pMap; + m_nList = rOther.m_nList; + m_bEntrySet = rOther.m_bEntrySet; + if (m_nList == -1) + m_aIndex = typename List< Val >::iterator(); + else + m_aIndex = rOther.m_aIndex; + } + return *this; +} + +//============================================================================ +template< typename Val > bool RegexpMapIterImpl< Val >::operator ==(RegexpMapIterImpl const & rOther) const { return m_pMap == rOther.m_pMap && m_nList == rOther.m_nList - && m_aIndex == rOther.m_aIndex; + && (m_nList == -1 || m_aIndex == rOther.m_aIndex); } //============================================================================ commit f28e7ef1877de10467e574edac0dd679f42ab31c Author: Michael Stahl <mst...@redhat.com> Date: Wed Jun 6 11:54:24 2012 +0200 ucb: second try to fix weird STL assertion on tinderbox It's possible that the constructor of RegexpMapIterImpl does not initialize m_aIndex, so try to park m_aIndex on some end() iterator; it looks like m_aIndex will not actually be used in this case, because m_nList = -1. Change-Id: I74cd0d1d87f3e90217c39bcd3168f157066ff3cb (cherry picked from commit 6506af86b5e20a860c8d2d1dd578a22914df5f53) diff --git a/ucb/source/inc/regexpmap.tpt b/ucb/source/inc/regexpmap.tpt index 0090029..64abc37 100644 --- a/ucb/source/inc/regexpmap.tpt +++ b/ucb/source/inc/regexpmap.tpt @@ -134,10 +134,11 @@ void RegexpMapIterImpl< Val >::setEntry() const //============================================================================ template< typename Val > RegexpMapIterImpl< Val >::RegexpMapIterImpl(RegexpMapImpl< Val > * pTheMap, - bool bBegin): - m_aEntry(rtl::OUString(), 0), - m_pMap(pTheMap), - m_bEntrySet(false) + bool bBegin) + : m_aEntry(rtl::OUString(), 0) + , m_aIndex(pTheMap->m_aList[Regexp::KIND_DOMAIN].end()) + , m_pMap(pTheMap) + , m_bEntrySet(false) { if (bBegin) { @@ -148,7 +149,6 @@ RegexpMapIterImpl< Val >::RegexpMapIterImpl(RegexpMapImpl< Val > * pTheMap, else { m_nList = Regexp::KIND_DOMAIN; - m_aIndex = m_pMap->m_aList[Regexp::KIND_DOMAIN].end(); } } commit b38db9ac9117e9bc5cb280f5c0faf497e9360122 Author: Michael Stahl <mst...@redhat.com> Date: Tue Jun 5 23:37:15 2012 +0200 ucb: try to fix weird STL assertion on tinderbox Seems there's uninitialized iterators somewhere, let's try if removing the silly default constructor here improves anything. Change-Id: I2ba239df9b532805e177378f9fa35023d087716a (cherry picked from commit 33839f90e6f8275a584b483827585a6da05aab75) diff --git a/ucb/source/core/ucb.cxx b/ucb/source/core/ucb.cxx index 64a412b..fec9972 100644 --- a/ucb/source/core/ucb.cxx +++ b/ucb/source/core/ucb.cxx @@ -399,7 +399,7 @@ UniversalContentBroker::registerContentProvider( { osl::MutexGuard aGuard(m_aMutex); - ProviderMap_Impl::iterator aIt; + ProviderMap_Impl::iterator aIt(m_aProviders.end()); try { aIt = m_aProviders.find(Scheme); @@ -445,7 +445,7 @@ void SAL_CALL UniversalContentBroker::deregisterContentProvider( { osl::MutexGuard aGuard(m_aMutex); - ProviderMap_Impl::iterator aMapIt; + ProviderMap_Impl::iterator aMapIt(m_aProviders.end()); try { aMapIt = m_aProviders.find(Scheme); diff --git a/ucb/source/inc/regexpmap.hxx b/ucb/source/inc/regexpmap.hxx index 717a077..e023633 100644 --- a/ucb/source/inc/regexpmap.hxx +++ b/ucb/source/inc/regexpmap.hxx @@ -101,8 +101,6 @@ class RegexpMapIter: public RegexpMapConstIter< Val > friend class RegexpMap< Val >; // to access ctor public: - RegexpMapIter() {} - RegexpMapIter & operator ++(); RegexpMapIter operator ++(int); diff --git a/ucb/source/inc/regexpmap.tpt b/ucb/source/inc/regexpmap.tpt index 4fe69a6..0090029 100644 --- a/ucb/source/inc/regexpmap.tpt +++ b/ucb/source/inc/regexpmap.tpt @@ -74,10 +74,6 @@ public: typedef RegexpMapImpl< Val > MapImpl; typedef typename List< Val >::iterator ListIterator; - // Solaris needs these for the ctor... - - inline RegexpMapIterImpl(); - inline RegexpMapIterImpl(MapImpl * pTheMap, int nTheList, ListIterator aTheIndex); @@ -96,6 +92,8 @@ public: RegexpMapEntry< Val > & get(); private: + RegexpMapIterImpl(); // not implemented + mutable RegexpMapEntry< Val > m_aEntry; typename List< Val >::iterator m_aIndex; RegexpMapImpl< Val > * m_pMap; @@ -108,14 +106,6 @@ private: } template< typename Val > -inline RegexpMapIterImpl< Val >::RegexpMapIterImpl(): - m_aEntry(rtl::OUString(), 0), - m_pMap(0), - m_nList(-1), - m_bEntrySet(false) -{} - -template< typename Val > inline RegexpMapIterImpl< Val >::RegexpMapIterImpl(MapImpl * pTheMap, int nTheList, ListIterator aTheIndex): _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits