comphelper/source/property/propertysetinfo.cxx | 18 ++++ framework/source/fwi/uielement/constitemcontainer.cxx | 74 ------------------ include/comphelper/propertysetinfo.hxx | 1 include/comphelper/seqstream.hxx | 6 + 4 files changed, 27 insertions(+), 72 deletions(-)
New commits: commit 013f84d06f7ad76d72b863170891589c3504508c Author: Michael Stahl <mst...@redhat.com> Date: Fri Sep 11 22:29:32 2015 +0200 comphelper: another WeakImplHelper duplicate Change-Id: I8b5fad24857f434cab351bbbae42c4b09bc6613a diff --git a/include/comphelper/seqstream.hxx b/include/comphelper/seqstream.hxx index a1982ab..3ac6617 100644 --- a/include/comphelper/seqstream.hxx +++ b/include/comphelper/seqstream.hxx @@ -73,7 +73,11 @@ public: private: inline sal_Int32 avail(); }; -typedef ::cppu::WeakImplHelper< ::com::sun::star::io::XOutputStream > OSequenceOutputStream_Base; + +// don't export to avoid duplicate WeakImplHelper definitions with MSVC +class SAL_DLLPUBLIC_TEMPLATE OSequenceOutputStream_Base + : public ::cppu::WeakImplHelper< ::com::sun::star::io::XOutputStream > +{}; class COMPHELPER_DLLPUBLIC OSequenceOutputStream : public OSequenceOutputStream_Base { commit 03be785efe589dda77cad28782fbf51ab4049f46 Author: Michael Stahl <mst...@redhat.com> Date: Fri Sep 11 22:26:44 2015 +0200 framework: yet another WeakImplHelper<XPropertySetInfo> dupcliate There's a very similar comphelper::PropertySetInfo, unfortunately with an additional mnMemberId on its properties, so convert a little... Change-Id: I2a5fc0bb0ff6d680d546192b9d09afee6348f218 diff --git a/comphelper/source/property/propertysetinfo.cxx b/comphelper/source/property/propertysetinfo.cxx index 4791b3c..90985f2 100644 --- a/comphelper/source/property/propertysetinfo.cxx +++ b/comphelper/source/property/propertysetinfo.cxx @@ -143,6 +143,24 @@ PropertySetInfo::PropertySetInfo( PropertyMapEntry const * pMap ) throw() mpMap->add( pMap ); } +PropertySetInfo::PropertySetInfo(uno::Sequence<beans::Property> const& rProps) throw() + : mpMap(new PropertyMapImpl) +{ + PropertyMapEntry * pEntries(new PropertyMapEntry[rProps.getLength() + 1]); + PropertyMapEntry * pEntry(&pEntries[0]); + for (auto const& it : rProps) + { + pEntry->maName = it.Name; + pEntry->mnHandle = it.Handle; + pEntry->maType = it.Type; + pEntry->mnAttributes = it.Attributes; + pEntry->mnMemberId = 0; + ++pEntry; + } + pEntry->maName = OUString(); + mpMap->add(pEntries); +} + PropertySetInfo::~PropertySetInfo() throw() { delete mpMap; diff --git a/framework/source/fwi/uielement/constitemcontainer.cxx b/framework/source/fwi/uielement/constitemcontainer.cxx index cea61f6..d2a4b07 100644 --- a/framework/source/fwi/uielement/constitemcontainer.cxx +++ b/framework/source/fwi/uielement/constitemcontainer.cxx @@ -26,6 +26,7 @@ #include <com/sun/star/beans/PropertyAttribute.hpp> #include <cppuhelper/implbase.hxx> +#include <comphelper/propertysetinfo.hxx> #include <comphelper/servicehelper.hxx> using namespace cppu; @@ -41,76 +42,6 @@ const char PROPNAME_UINAME[] = "UIName"; namespace framework { -/** - * The class which implements the PropertySetInfo interface. - */ -extern "C" -{ -static int SAL_CALL compare_OUString_Property_Impl( const void *arg1, const void *arg2 ) -{ - return static_cast<OUString const *>(arg1)->compareTo( static_cast<Property const *>(arg2)->Name ); -} -} - -class OPropertySetHelperInfo_Impl - : public WeakImplHelper< ::com::sun::star::beans::XPropertySetInfo > -{ - Sequence < Property > aInfos; - -public: - OPropertySetHelperInfo_Impl( IPropertyArrayHelper & rHelper_ ); - - // XPropertySetInfo-Methoden - virtual Sequence< Property > SAL_CALL getProperties() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; - virtual Property SAL_CALL getPropertyByName(const OUString& PropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; - virtual sal_Bool SAL_CALL hasPropertyByName(const OUString& PropertyName) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE; -}; - -/** - * Create an object that implements XPropertySetInfo IPropertyArrayHelper. - */ -OPropertySetHelperInfo_Impl::OPropertySetHelperInfo_Impl( - IPropertyArrayHelper & rHelper_ ) - :aInfos( rHelper_.getProperties() ) -{ -} - -/** - * Return the sequence of properties, which are provided through the constructor. - */ -Sequence< Property > OPropertySetHelperInfo_Impl::getProperties() throw(::com::sun::star::uno::RuntimeException, std::exception) -{ - return aInfos; -} - -/** - * Return the sequence of properties, which are provided through the constructor. - */ -Property OPropertySetHelperInfo_Impl::getPropertyByName( const OUString & PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException, std::exception) -{ - Property * pR; - pR = static_cast<Property *>(bsearch( &PropertyName, aInfos.getConstArray(), aInfos.getLength(), - sizeof( Property ), - compare_OUString_Property_Impl )); - if( !pR ) { - throw UnknownPropertyException(); - } - - return *pR; -} - -/** - * Return the sequence of properties, which are provided through the constructor. - */ -sal_Bool OPropertySetHelperInfo_Impl::hasPropertyByName( const OUString & PropertyName ) throw(::com::sun::star::uno::RuntimeException, std::exception) -{ - Property * pR; - pR = static_cast<Property *>(bsearch( &PropertyName, aInfos.getConstArray(), aInfos.getLength(), - sizeof( Property ), - compare_OUString_Property_Impl )); - return pR != NULL; -} - ConstItemContainer::ConstItemContainer() { } @@ -409,7 +340,8 @@ const com::sun::star::uno::Sequence< com::sun::star::beans::Property > ConstItem Reference < XPropertySetInfo > ConstItemContainer::createPropertySetInfo( IPropertyArrayHelper & rProperties ) { - return static_cast< XPropertySetInfo * >( new OPropertySetHelperInfo_Impl( rProperties ) ); + return static_cast<XPropertySetInfo *>( + new ::comphelper::PropertySetInfo(rProperties.getProperties())); } } // namespace framework diff --git a/include/comphelper/propertysetinfo.hxx b/include/comphelper/propertysetinfo.hxx index e554282..e81a43e 100644 --- a/include/comphelper/propertysetinfo.hxx +++ b/include/comphelper/propertysetinfo.hxx @@ -54,6 +54,7 @@ private: public: PropertySetInfo() throw(); PropertySetInfo( PropertyMapEntry const * pMap ) throw(); + PropertySetInfo(css::uno::Sequence<css::beans::Property> const &) throw(); virtual ~PropertySetInfo() throw(); /** returns a stl map with all PropertyMapEntry pointer.<p> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits