Kaydet (Commit) 03e0bd6b authored tarafından Matthew Pottage's avatar Matthew Pottage Kaydeden (comit) Stephan Bergmann

[API CHANGE] Removed two cppuhelper deprecated headers.

The headers cppuheader/compbase.hxx and implbase.hxx. They have been deprecated
since 2001. Moved the definitions of the deprecated functions to
cppuhelper/source/compat.cxx.

Signed-off-by: Stephan Bergmann <sbergman@redhat.com>, adding fixes and clean-up
in cppuhelper/source/compat.cxx and odk/Package_odk_headers.mk

Change-Id: I48b3cbf551b59d72614737a883a96aab55fc2090
üst 024e5376
......@@ -32,6 +32,7 @@ namespace com { namespace sun { namespace star {
namespace lang {
class XMultiComponentFactory;
class XMultiServiceFactory;
class XTypeProvider;
}
namespace reflection { class XIdlClass; }
namespace registry {
......@@ -112,6 +113,61 @@ loadSharedLibComponentFactory(
for (;;) { std::abort(); } // avoid "must return a value" warnings
}
struct SAL_DLLPUBLIC_EXPORT ClassData {
css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId();
css::uno::Sequence<css::uno::Type> SAL_CALL getTypes();
void SAL_CALL initTypeProvider();
css::uno::Any SAL_CALL query(
css::uno::Type const &, css::lang::XTypeProvider *);
void SAL_CALL writeTypeOffset(css::uno::Type const &, sal_Int32);
};
css::uno::Sequence<sal_Int8> ClassData::getImplementationId() {
for (;;) { std::abort(); } // avoid "must return a value" warnings
}
css::uno::Sequence<css::uno::Type> ClassData::getTypes() {
for (;;) { std::abort(); } // avoid "must return a value" warnings
}
void ClassData::initTypeProvider() {
std::abort();
}
css::uno::Any ClassData::query(
css::uno::Type const &, css::lang::XTypeProvider *)
{
for (;;) { std::abort(); } // avoid "must return a value" warnings
}
void ClassData::writeTypeOffset(css::uno::Type const &, sal_Int32) {
std::abort();
}
struct SAL_DLLPUBLIC_EXPORT ClassDataBase {
ClassDataBase();
ClassDataBase(sal_Int32);
~ClassDataBase();
};
ClassDataBase::ClassDataBase() {
std::abort();
}
ClassDataBase::ClassDataBase(sal_Int32) {
std::abort();
}
ClassDataBase::~ClassDataBase() {
std::abort();
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -17,8 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/compbase_ex.hxx>
#include <osl/diagnose.h>
#include <rtl/instance.hxx>
#include <rtl/string.hxx>
......@@ -36,147 +35,6 @@ using rtl::OString;
namespace cppu
{
// ClassDataBase
ClassDataBase::ClassDataBase()
: bOffsetsInit( sal_False )
, nType2Offset( 0 )
, nClassCode( 0 )
, pTypes( 0 )
, pId( 0 )
{
}
ClassDataBase::ClassDataBase( sal_Int32 nClassCode_ )
: bOffsetsInit( sal_False )
, nType2Offset( 0 )
, nClassCode( nClassCode_ )
, pTypes( 0 )
, pId( 0 )
{
}
ClassDataBase::~ClassDataBase()
{
delete pTypes;
delete pId;
for ( sal_Int32 nPos = nType2Offset; nPos--; )
{
typelib_typedescription_release(
(typelib_TypeDescription *)((ClassData *)this)->arType2Offset[nPos].pTD );
}
}
// ClassData
void ClassData::writeTypeOffset( const Type & rType, sal_Int32 nOffset )
{
arType2Offset[nType2Offset].nOffset = nOffset;
arType2Offset[nType2Offset].pTD = 0;
typelib_typedescriptionreference_getDescription(
(typelib_TypeDescription **)&arType2Offset[nType2Offset].pTD, rType.getTypeLibType() );
if (arType2Offset[nType2Offset].pTD)
++nType2Offset;
#if OSL_DEBUG_LEVEL > 1
else
{
OString msg( "### cannot get type description for " );
msg += OUStringToOString( rType.getTypeName(), RTL_TEXTENCODING_ASCII_US );
OSL_FAIL( msg.getStr() );
}
#endif
}
void ClassData::initTypeProvider()
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
if (! pTypes)
{
// collect types
Sequence< Type > * types = new Sequence< Type >(
nType2Offset + 1 + (nClassCode == 4 ? 2 : nClassCode) );
Type * pTypeAr = types->getArray();
// given types
sal_Int32 nPos = nType2Offset;
while (nPos--)
pTypeAr[nPos] = ((typelib_TypeDescription *)arType2Offset[nPos].pTD)->pWeakRef;
// XTypeProvider
pTypeAr[nType2Offset] = ::getCppuType( (const Reference< lang::XTypeProvider > *)0 );
// class code extra types: [[XComponent,] XWeak[, XAggregation]]
switch (nClassCode)
{
case 4:
pTypeAr[nType2Offset +2] = ::getCppuType( (const Reference< lang::XComponent > *)0 );
pTypeAr[nType2Offset +1] = ::getCppuType( (const Reference< XWeak > *)0 );
break;
case 3:
pTypeAr[nType2Offset +3] = ::getCppuType( (const Reference< lang::XComponent > *)0 );
case 2:
pTypeAr[nType2Offset +2] = ::getCppuType( (const Reference< XAggregation > *)0 );
case 1:
pTypeAr[nType2Offset +1] = ::getCppuType( (const Reference< XWeak > *)0 );
}
pTypes = types;
}
}
Sequence< Type > ClassData::getTypes()
{
if (! pTypes)
initTypeProvider();
return *pTypes;
}
Sequence< sal_Int8 > ClassData::getImplementationId()
{
return css::uno::Sequence<sal_Int8>();
}
static inline bool td_equals(
typelib_TypeDescription * pTD, typelib_TypeDescriptionReference * pType )
{
return (pTD->pWeakRef == pType ||
(pTD->pTypeName->length == pType->pTypeName->length &&
rtl_ustr_compare( pTD->pTypeName->buffer, pType->pTypeName->buffer ) == 0));
}
Any ClassData::query( const Type & rType, lang::XTypeProvider * pBase )
{
if (rType == ::getCppuType( (const Reference< XInterface > *)0 ))
return Any( &pBase, ::getCppuType( (const Reference< XInterface > *)0 ) );
for ( sal_Int32 nPos = 0; nPos < nType2Offset; ++nPos )
{
const Type_Offset & rTO = arType2Offset[nPos];
typelib_InterfaceTypeDescription * pTD = rTO.pTD;
while (pTD)
{
if (td_equals( (typelib_TypeDescription *)pTD,
*(typelib_TypeDescriptionReference **)&rType ))
{
void * pInterface = (char *)pBase + rTO.nOffset;
return Any( &pInterface, (typelib_TypeDescription *)pTD );
}
pTD = pTD->pBaseTypeDescription;
}
}
if (rType == ::getCppuType( (const Reference< lang::XTypeProvider > *)0 ))
return Any( &pBase, ::getCppuType( (const Reference< lang::XTypeProvider > *)0 ) );
return Any();
}
// WeakComponentImplHelperBase
WeakComponentImplHelperBase::WeakComponentImplHelperBase( Mutex & rMutex )
......
......@@ -11,7 +11,6 @@
#include <comphelper/processfactory.hxx>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase3.hxx>
#include <cppuhelper/implbase.hxx>
#include <sax/tools/documenthandleradapter.hxx>
......
......@@ -29,7 +29,6 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase4.hxx>
#include <cppuhelper/implbase.hxx>
#include <osl/module.h>
#include <osl/file.hxx>
......
......@@ -23,7 +23,6 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase.hxx>
#include <rtl/ref.hxx>
......
......@@ -25,7 +25,6 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase4.hxx>
#include <cppuhelper/implbase.hxx>
#include <osl/module.h>
#include <osl/file.hxx>
#include <osl/process.h>
......
......@@ -22,7 +22,6 @@
#include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase4.hxx>
#include <cppuhelper/implbase.hxx>
#include <sax/tools/documenthandleradapter.hxx>
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* 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 .
*/
#ifndef INCLUDED_CPPUHELPER_COMPBASE_HXX
#define INCLUDED_CPPUHELPER_COMPBASE_HXX
#include <cppuhelper/compbase_ex.hxx>
#include <cppuhelper/implbase.hxx>
/* This header should not be used anymore.
@deprecated
*/
/// @cond INTERNAL
#define __DEF_COMPIMPLHELPER_A( N ) \
namespace cppu \
{ \
template< __CLASS_IFC##N > \
class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakComponentImplHelper##N \
: public ::cppu::WeakComponentImplHelperBase \
, public ImplHelperBase##N< __IFC##N > \
{ \
static ClassData##N s_aCD; \
public: \
WeakComponentImplHelper##N( ::osl::Mutex & rMutex ) \
: WeakComponentImplHelperBase( rMutex ) \
{} \
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) \
{ \
::com::sun::star::uno::Any aRet( getClassData( s_aCD ).query( rType, (ImplHelperBase##N< __IFC##N > *)this ) ); \
if (aRet.hasValue()) \
return aRet; \
return WeakComponentImplHelperBase::queryInterface( rType ); \
} \
virtual void SAL_CALL acquire() throw () \
{ WeakComponentImplHelperBase::acquire(); } \
virtual void SAL_CALL release() throw () \
{ WeakComponentImplHelperBase::release(); } \
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException) \
{ return getClassData( s_aCD ).getTypes(); } \
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) \
{ return getClassData( s_aCD ).getImplementationId(); } \
}; \
template< __CLASS_IFC##N > \
class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakAggComponentImplHelper##N \
: public ::cppu::WeakAggComponentImplHelperBase \
, public ImplHelperBase##N< __IFC##N > \
{ \
static ClassData##N s_aCD; \
public: \
WeakAggComponentImplHelper##N( ::osl::Mutex & rMutex ) \
: WeakAggComponentImplHelperBase( rMutex ) \
{} \
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) \
{ return WeakAggComponentImplHelperBase::queryInterface( rType ); } \
virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException) \
{ \
::com::sun::star::uno::Any aRet( getClassData( s_aCD ).query( rType, (ImplHelperBase##N< __IFC##N > *)this ) ); \
if (aRet.hasValue()) \
return aRet; \
return WeakAggComponentImplHelperBase::queryAggregation( rType ); \
} \
virtual void SAL_CALL acquire() throw () \
{ WeakAggComponentImplHelperBase::acquire(); } \
virtual void SAL_CALL release() throw () \
{ WeakAggComponentImplHelperBase::release(); } \
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException) \
{ return getClassData( s_aCD ).getTypes(); } \
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) \
{ return getClassData( s_aCD ).getImplementationId(); } \
};
#define __DEF_COMPIMPLHELPER_B( N ) \
template< __CLASS_IFC##N > \
ClassData##N WeakComponentImplHelper##N< __IFC##N >::s_aCD = ClassData##N( 4 ); \
template< __CLASS_IFC##N > \
ClassData##N WeakAggComponentImplHelper##N< __IFC##N >::s_aCD = ClassData##N( 3 );
#define __DEF_COMPIMPLHELPER_C( N ) \
}
#define __DEF_COMPIMPLHELPER( N ) \
__DEF_COMPIMPLHELPER_A( N ) \
__DEF_COMPIMPLHELPER_B( N ) \
__DEF_COMPIMPLHELPER_C( N )
/// @endcond
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
......@@ -35,7 +35,6 @@ $(eval $(call gb_Package_add_files_with_dir,odk_headers,$(SDKDIRNAME)/include,\
cppuhelper/access_control.hxx \
cppuhelper/basemutex.hxx \
cppuhelper/bootstrap.hxx \
cppuhelper/compbase.hxx \
cppuhelper/compbase1.hxx \
cppuhelper/compbase10.hxx \
cppuhelper/compbase11.hxx \
......@@ -55,7 +54,6 @@ $(eval $(call gb_Package_add_files_with_dir,odk_headers,$(SDKDIRNAME)/include,\
cppuhelper/exc_hlp.hxx \
cppuhelper/factory.hxx \
cppuhelper/findsofficepath.h \
cppuhelper/implbase.hxx \
cppuhelper/implbase1.hxx \
cppuhelper/implbase10.hxx \
cppuhelper/implbase11.hxx \
......
......@@ -37,7 +37,6 @@
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase2.hxx>
#include <cppuhelper/implbase3.hxx>
#include <cppuhelper/implbase.hxx>
#include <uno/lbnames.h>
#include <com/sun/star/lang/XComponent.hpp>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment