[Libreoffice-commits] core.git: bridges/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Sat Apr 18 19:48:24 UTC 2020
bridges/source/cpp_uno/shared/bridge.cxx | 152 ++++++++++----------
bridges/source/cpp_uno/shared/component.cxx | 152 ++++++++++----------
bridges/source/cpp_uno/shared/unointerfaceproxy.cxx | 26 +--
bridges/source/jni_uno/jni_bridge.cxx | 86 +++++------
4 files changed, 208 insertions(+), 208 deletions(-)
New commits:
commit eab4993eab9a2a9e0660a827ed60f0125cf20d53
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sat Apr 18 14:15:02 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Apr 18 21:47:45 2020 +0200
loplugin:flatten in bridges
Change-Id: I736032df48cb491508c27cbe773b964d1d2359b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92482
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/bridges/source/cpp_uno/shared/bridge.cxx b/bridges/source/cpp_uno/shared/bridge.cxx
index 007373448bb3..3753341ccde2 100644
--- a/bridges/source/cpp_uno/shared/bridge.cxx
+++ b/bridges/source/cpp_uno/shared/bridge.cxx
@@ -59,39 +59,39 @@ void cpp2unoMapping(
static_cast< uno_Interface * >( *ppUnoI ) );
*ppUnoI = nullptr;
}
- if (pCppI)
+ if (!pCppI)
+ return;
+
+ Bridge * pBridge = static_cast< Bridge::Mapping * >( pMapping )->pBridge;
+
+ // get object id of interface to be wrapped
+ rtl_uString * pOId = nullptr;
+ (*pBridge->pCppEnv->getObjectIdentifier)(
+ pBridge->pCppEnv, &pOId, pCppI );
+ assert(pOId);
+
+ // try to get any known interface from target environment
+ (*pBridge->pUnoEnv->getRegisteredInterface)(
+ pBridge->pUnoEnv, ppUnoI, pOId, pTypeDescr );
+
+ if (! *ppUnoI) // no existing interface, register new proxy interface
{
- Bridge * pBridge = static_cast< Bridge::Mapping * >( pMapping )->pBridge;
-
- // get object id of interface to be wrapped
- rtl_uString * pOId = nullptr;
- (*pBridge->pCppEnv->getObjectIdentifier)(
- pBridge->pCppEnv, &pOId, pCppI );
- assert(pOId);
-
- // try to get any known interface from target environment
- (*pBridge->pUnoEnv->getRegisteredInterface)(
- pBridge->pUnoEnv, ppUnoI, pOId, pTypeDescr );
-
- if (! *ppUnoI) // no existing interface, register new proxy interface
- {
- // try to publish a new proxy (refcount initially 1)
- uno_Interface * pSurrogate
- = bridges::cpp_uno::shared::UnoInterfaceProxy::create(
- pBridge,
- static_cast< ::com::sun::star::uno::XInterface * >( pCppI ),
- pTypeDescr, pOId );
-
- // proxy may be exchanged during registration
- (*pBridge->pUnoEnv->registerProxyInterface)(
- pBridge->pUnoEnv, reinterpret_cast< void ** >( &pSurrogate ),
- freeUnoInterfaceProxy, pOId,
- pTypeDescr );
-
- *ppUnoI = pSurrogate;
- }
- ::rtl_uString_release( pOId );
+ // try to publish a new proxy (refcount initially 1)
+ uno_Interface * pSurrogate
+ = bridges::cpp_uno::shared::UnoInterfaceProxy::create(
+ pBridge,
+ static_cast< ::com::sun::star::uno::XInterface * >( pCppI ),
+ pTypeDescr, pOId );
+
+ // proxy may be exchanged during registration
+ (*pBridge->pUnoEnv->registerProxyInterface)(
+ pBridge->pUnoEnv, reinterpret_cast< void ** >( &pSurrogate ),
+ freeUnoInterfaceProxy, pOId,
+ pTypeDescr );
+
+ *ppUnoI = pSurrogate;
}
+ ::rtl_uString_release( pOId );
}
void uno2cppMapping(
@@ -105,38 +105,38 @@ void uno2cppMapping(
release();
*ppCppI = nullptr;
}
- if (pUnoI)
+ if (!pUnoI)
+ return;
+
+ Bridge * pBridge = static_cast< Bridge::Mapping * >( pMapping )->pBridge;
+
+ // get object id of uno interface to be wrapped
+ rtl_uString * pOId = nullptr;
+ (*pBridge->pUnoEnv->getObjectIdentifier)(
+ pBridge->pUnoEnv, &pOId, pUnoI );
+ assert(pOId);
+
+ // try to get any known interface from target environment
+ (*pBridge->pCppEnv->getRegisteredInterface)(
+ pBridge->pCppEnv, ppCppI, pOId, pTypeDescr );
+
+ if (! *ppCppI) // no existing interface, register new proxy interface
{
- Bridge * pBridge = static_cast< Bridge::Mapping * >( pMapping )->pBridge;
-
- // get object id of uno interface to be wrapped
- rtl_uString * pOId = nullptr;
- (*pBridge->pUnoEnv->getObjectIdentifier)(
- pBridge->pUnoEnv, &pOId, pUnoI );
- assert(pOId);
-
- // try to get any known interface from target environment
- (*pBridge->pCppEnv->getRegisteredInterface)(
- pBridge->pCppEnv, ppCppI, pOId, pTypeDescr );
-
- if (! *ppCppI) // no existing interface, register new proxy interface
- {
- // try to publish a new proxy (ref count initially 1)
- com::sun::star::uno::XInterface * pProxy
- = bridges::cpp_uno::shared::CppInterfaceProxy::create(
- pBridge, static_cast< uno_Interface * >( pUnoI ),
- pTypeDescr, pOId );
-
- // proxy may be exchanged during registration
- (*pBridge->pCppEnv->registerProxyInterface)(
- pBridge->pCppEnv, reinterpret_cast< void ** >( &pProxy ),
- freeCppInterfaceProxy, pOId,
- pTypeDescr );
-
- *ppCppI = pProxy;
- }
- ::rtl_uString_release( pOId );
+ // try to publish a new proxy (ref count initially 1)
+ com::sun::star::uno::XInterface * pProxy
+ = bridges::cpp_uno::shared::CppInterfaceProxy::create(
+ pBridge, static_cast< uno_Interface * >( pUnoI ),
+ pTypeDescr, pOId );
+
+ // proxy may be exchanged during registration
+ (*pBridge->pCppEnv->registerProxyInterface)(
+ pBridge->pCppEnv, reinterpret_cast< void ** >( &pProxy ),
+ freeCppInterfaceProxy, pOId,
+ pTypeDescr );
+
+ *ppCppI = pProxy;
}
+ ::rtl_uString_release( pOId );
}
uno_Mapping * Bridge::createMapping(
@@ -150,22 +150,22 @@ uno_Mapping * Bridge::createMapping(
void Bridge::acquire()
{
- if (++nRef == 1)
+ if (++nRef != 1)
+ return;
+
+ if (bExportCpp2Uno)
+ {
+ uno_Mapping * pMapping = &aCpp2Uno;
+ ::uno_registerMapping(
+ &pMapping, freeMapping, &pCppEnv->aBase,
+ &pUnoEnv->aBase, nullptr );
+ }
+ else
{
- if (bExportCpp2Uno)
- {
- uno_Mapping * pMapping = &aCpp2Uno;
- ::uno_registerMapping(
- &pMapping, freeMapping, &pCppEnv->aBase,
- &pUnoEnv->aBase, nullptr );
- }
- else
- {
- uno_Mapping * pMapping = &aUno2Cpp;
- ::uno_registerMapping(
- &pMapping, freeMapping, &pUnoEnv->aBase,
- &pCppEnv->aBase, nullptr );
- }
+ uno_Mapping * pMapping = &aUno2Cpp;
+ ::uno_registerMapping(
+ &pMapping, freeMapping, &pUnoEnv->aBase,
+ &pCppEnv->aBase, nullptr );
}
}
diff --git a/bridges/source/cpp_uno/shared/component.cxx b/bridges/source/cpp_uno/shared/component.cxx
index 9cd2b5ba5f36..5bdb0bb561eb 100644
--- a/bridges/source/cpp_uno/shared/component.cxx
+++ b/bridges/source/cpp_uno/shared/component.cxx
@@ -67,48 +67,48 @@ static void s_stub_computeObjectIdentifier(va_list * pParam)
assert(pEnv && ppOId && pInterface);
- if (pEnv && ppOId && pInterface)
+ if (!(pEnv && ppOId && pInterface))
+ return;
+
+ if (*ppOId)
{
- if (*ppOId)
- {
- rtl_uString_release( *ppOId );
- *ppOId = nullptr;
- }
+ rtl_uString_release( *ppOId );
+ *ppOId = nullptr;
+ }
- try
- {
- ::com::sun::star::uno::Reference<
- ::com::sun::star::uno::XInterface > xHome(
- static_cast< ::com::sun::star::uno::XInterface * >(
- pInterface ),
- ::com::sun::star::uno::UNO_QUERY );
- assert(xHome.is() && "### query to XInterface failed!");
- if (xHome.is())
- {
- // interface
- OUStringBuffer oid( 64 );
- oid.append( reinterpret_cast< sal_Int64 >(xHome.get()), 16 );
- oid.append( ';' );
- // ;environment[context]
- oid.append( OUString::unacquired(&pEnv->aBase.pTypeName) );
- oid.append( '[' );
- oid.append(
- reinterpret_cast< sal_Int64 >(pEnv->aBase.pContext),
- 16 );
- // ];good guid
- oid.append( cppu_cppenv_getStaticOIdPart() );
- OUString aRet( oid.makeStringAndClear() );
- *ppOId = aRet.pData;
- ::rtl_uString_acquire( *ppOId );
- }
- }
- catch (const ::com::sun::star::uno::RuntimeException & e)
+ try
+ {
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::uno::XInterface > xHome(
+ static_cast< ::com::sun::star::uno::XInterface * >(
+ pInterface ),
+ ::com::sun::star::uno::UNO_QUERY );
+ assert(xHome.is() && "### query to XInterface failed!");
+ if (xHome.is())
{
- SAL_WARN("bridges",
- "### RuntimeException occurred during queryInterface(): "
- << e.Message);
+ // interface
+ OUStringBuffer oid( 64 );
+ oid.append( reinterpret_cast< sal_Int64 >(xHome.get()), 16 );
+ oid.append( ';' );
+ // ;environment[context]
+ oid.append( OUString::unacquired(&pEnv->aBase.pTypeName) );
+ oid.append( '[' );
+ oid.append(
+ reinterpret_cast< sal_Int64 >(pEnv->aBase.pContext),
+ 16 );
+ // ];good guid
+ oid.append( cppu_cppenv_getStaticOIdPart() );
+ OUString aRet( oid.makeStringAndClear() );
+ *ppOId = aRet.pData;
+ ::rtl_uString_acquire( *ppOId );
}
}
+ catch (const ::com::sun::star::uno::RuntimeException & e)
+ {
+ SAL_WARN("bridges",
+ "### RuntimeException occurred during queryInterface(): "
+ << e.Message);
+ }
}
static void computeObjectIdentifier(
@@ -177,49 +177,49 @@ SAL_DLLPUBLIC_EXPORT void uno_ext_getMapping(
SAL_THROW_EXTERN_C()
{
assert(ppMapping && pFrom && pTo);
- if (ppMapping && pFrom && pTo && pFrom->pExtEnv && pTo->pExtEnv)
- {
- uno_Mapping * pMapping = nullptr;
+ if (!(ppMapping && pFrom && pTo && pFrom->pExtEnv && pTo->pExtEnv))
+ return;
- OUString from_envTypeName(cppu::EnvDcp::getTypeName(pFrom->pTypeName));
- OUString to_envTypeName(cppu::EnvDcp::getTypeName(pTo->pTypeName));
+ uno_Mapping * pMapping = nullptr;
- if (rtl_ustr_ascii_compare(
- from_envTypeName.pData->buffer,
- CPPU_CURRENT_LANGUAGE_BINDING_NAME ) == 0 &&
- rtl_ustr_ascii_compare(
- to_envTypeName.pData->buffer, UNO_LB_UNO ) == 0)
- {
- // ref count initially 1
- pMapping = bridges::cpp_uno::shared::Bridge::createMapping(
- pFrom->pExtEnv, pTo->pExtEnv, true );
- ::uno_registerMapping(
- &pMapping, bridges::cpp_uno::shared::freeMapping,
- &pFrom->pExtEnv->aBase,
- &pTo->pExtEnv->aBase, nullptr );
- }
- else if (rtl_ustr_ascii_compare(
- to_envTypeName.pData->buffer,
- CPPU_CURRENT_LANGUAGE_BINDING_NAME ) == 0 &&
- rtl_ustr_ascii_compare(
- from_envTypeName.pData->buffer, UNO_LB_UNO ) == 0)
- {
- // ref count initially 1
- pMapping = bridges::cpp_uno::shared::Bridge::createMapping(
- pTo->pExtEnv, pFrom->pExtEnv, false );
- ::uno_registerMapping(
- &pMapping, bridges::cpp_uno::shared::freeMapping,
- &pFrom->pExtEnv->aBase,
- &pTo->pExtEnv->aBase, nullptr );
- }
+ OUString from_envTypeName(cppu::EnvDcp::getTypeName(pFrom->pTypeName));
+ OUString to_envTypeName(cppu::EnvDcp::getTypeName(pTo->pTypeName));
- if (*ppMapping)
- {
- (*(*ppMapping)->release)( *ppMapping );
- }
- if (pMapping)
- *ppMapping = pMapping;
+ if (rtl_ustr_ascii_compare(
+ from_envTypeName.pData->buffer,
+ CPPU_CURRENT_LANGUAGE_BINDING_NAME ) == 0 &&
+ rtl_ustr_ascii_compare(
+ to_envTypeName.pData->buffer, UNO_LB_UNO ) == 0)
+ {
+ // ref count initially 1
+ pMapping = bridges::cpp_uno::shared::Bridge::createMapping(
+ pFrom->pExtEnv, pTo->pExtEnv, true );
+ ::uno_registerMapping(
+ &pMapping, bridges::cpp_uno::shared::freeMapping,
+ &pFrom->pExtEnv->aBase,
+ &pTo->pExtEnv->aBase, nullptr );
+ }
+ else if (rtl_ustr_ascii_compare(
+ to_envTypeName.pData->buffer,
+ CPPU_CURRENT_LANGUAGE_BINDING_NAME ) == 0 &&
+ rtl_ustr_ascii_compare(
+ from_envTypeName.pData->buffer, UNO_LB_UNO ) == 0)
+ {
+ // ref count initially 1
+ pMapping = bridges::cpp_uno::shared::Bridge::createMapping(
+ pTo->pExtEnv, pFrom->pExtEnv, false );
+ ::uno_registerMapping(
+ &pMapping, bridges::cpp_uno::shared::freeMapping,
+ &pFrom->pExtEnv->aBase,
+ &pTo->pExtEnv->aBase, nullptr );
+ }
+
+ if (*ppMapping)
+ {
+ (*(*ppMapping)->release)( *ppMapping );
}
+ if (pMapping)
+ *ppMapping = pMapping;
}
}
diff --git a/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx b/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
index c3c560acb7de..91578e9999d1 100644
--- a/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
+++ b/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
@@ -50,23 +50,23 @@ void freeUnoInterfaceProxy(uno_ExtEnvironment * pEnv, void * pProxy)
void acquireProxy(uno_Interface * pUnoI)
{
- if (++static_cast< UnoInterfaceProxy * >( pUnoI )->nRef == 1)
- {
- // rebirth of proxy zombie
- // register at uno env
+ if (++static_cast< UnoInterfaceProxy * >( pUnoI )->nRef != 1)
+ return;
+
+ // rebirth of proxy zombie
+ // register at uno env
#if OSL_DEBUG_LEVEL > 1
- void * pThis = pUnoI;
+ void * pThis = pUnoI;
#endif
- (*static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv()->
- registerProxyInterface)(
- static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv(),
- reinterpret_cast< void ** >( &pUnoI ), freeUnoInterfaceProxy,
- static_cast< UnoInterfaceProxy * >( pUnoI )->oid.pData,
- static_cast< UnoInterfaceProxy * >( pUnoI )->pTypeDescr );
+ (*static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv()->
+ registerProxyInterface)(
+ static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv(),
+ reinterpret_cast< void ** >( &pUnoI ), freeUnoInterfaceProxy,
+ static_cast< UnoInterfaceProxy * >( pUnoI )->oid.pData,
+ static_cast< UnoInterfaceProxy * >( pUnoI )->pTypeDescr );
#if OSL_DEBUG_LEVEL > 1
- assert(pThis == pUnoI);
+ assert(pThis == pUnoI);
#endif
- }
}
void releaseProxy(uno_Interface * pUnoI)
diff --git a/bridges/source/jni_uno/jni_bridge.cxx b/bridges/source/jni_uno/jni_bridge.cxx
index 6ff327a1eb06..341c466aa90c 100644
--- a/bridges/source/jni_uno/jni_bridge.cxx
+++ b/bridges/source/jni_uno/jni_bridge.cxx
@@ -195,22 +195,22 @@ namespace jni_uno
void Bridge::acquire() const
{
- if (++m_ref == 1)
+ if (++m_ref != 1)
+ return;
+
+ if (m_registered_java2uno)
{
- if (m_registered_java2uno)
- {
- uno_Mapping * mapping = const_cast< Mapping * >( &m_java2uno );
- uno_registerMapping(
- &mapping, Bridge_free,
- m_java_env, &m_uno_env->aBase, nullptr );
- }
- else
- {
- uno_Mapping * mapping = const_cast< Mapping * >( &m_uno2java );
- uno_registerMapping(
- &mapping, Bridge_free,
- &m_uno_env->aBase, m_java_env, nullptr );
- }
+ uno_Mapping * mapping = const_cast< Mapping * >( &m_java2uno );
+ uno_registerMapping(
+ &mapping, Bridge_free,
+ m_java_env, &m_uno_env->aBase, nullptr );
+ }
+ else
+ {
+ uno_Mapping * mapping = const_cast< Mapping * >( &m_uno2java );
+ uno_registerMapping(
+ &mapping, Bridge_free,
+ &m_uno_env->aBase, m_java_env, nullptr );
}
}
@@ -425,34 +425,34 @@ extern "C" {
static void java_env_dispose(uno_Environment * env) {
auto * envData
= static_cast<jni_uno::JniUnoEnvironmentData *>(env->pContext);
- if (envData != nullptr) {
- jobject async;
- {
- osl::MutexGuard g(envData->mutex);
- async = envData->asynchronousFinalizer;
- envData->asynchronousFinalizer = nullptr;
- }
- if (async != nullptr) {
- try {
- JNI_guarded_context jni(envData->info, envData->machine);
- jni->CallObjectMethodA(
- async, envData->info->m_method_AsynchronousFinalizer_drain,
- nullptr);
- jni.ensure_no_exception();
- jni->DeleteGlobalRef(async);
- } catch (const BridgeRuntimeError & e) {
- SAL_WARN(
- "bridges",
- "ignoring BridgeRuntimeError \"" << e.m_message << "\"");
- } catch (
- jvmaccess::VirtualMachine::AttachGuard::CreationException &)
- {
- SAL_WARN(
- "bridges",
- ("ignoring jvmaccess::VirtualMachine::AttachGuard"
- "::CreationException"));
- }
- }
+ if (envData == nullptr) return;
+
+ jobject async;
+ {
+ osl::MutexGuard g(envData->mutex);
+ async = envData->asynchronousFinalizer;
+ envData->asynchronousFinalizer = nullptr;
+ }
+ if (async == nullptr) return;
+
+ try {
+ JNI_guarded_context jni(envData->info, envData->machine);
+ jni->CallObjectMethodA(
+ async, envData->info->m_method_AsynchronousFinalizer_drain,
+ nullptr);
+ jni.ensure_no_exception();
+ jni->DeleteGlobalRef(async);
+ } catch (const BridgeRuntimeError & e) {
+ SAL_WARN(
+ "bridges",
+ "ignoring BridgeRuntimeError \"" << e.m_message << "\"");
+ } catch (
+ jvmaccess::VirtualMachine::AttachGuard::CreationException &)
+ {
+ SAL_WARN(
+ "bridges",
+ ("ignoring jvmaccess::VirtualMachine::AttachGuard"
+ "::CreationException"));
}
}
More information about the Libreoffice-commits
mailing list