[Libreoffice-commits] core.git: bridges/inc bridges/source

Stephan Bergmann sbergman at redhat.com
Mon Aug 28 13:51:22 UTC 2017


 bridges/inc/bridge.hxx                              |    8 ++++++--
 bridges/inc/cppinterfaceproxy.hxx                   |    8 ++++++--
 bridges/inc/unointerfaceproxy.hxx                   |    8 ++++++--
 bridges/source/cpp_uno/shared/bridge.cxx            |    5 ++---
 bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx |    5 ++---
 bridges/source/cpp_uno/shared/unointerfaceproxy.cxx |    7 ++-----
 bridges/source/jni_uno/jni_bridge.cxx               |    4 ++--
 bridges/source/jni_uno/jni_bridge.h                 |    8 ++++++--
 bridges/source/jni_uno/jni_uno2java.cxx             |    8 +++++---
 9 files changed, 37 insertions(+), 24 deletions(-)

New commits:
commit 4ecc6555878027f1cc0f853e1aa023f12167f96f
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Aug 28 15:47:32 2017 +0200

    Replace use of oslInterlockedCount with std::atomic in bridges
    
    Change-Id: Iad47a01fd283345a2461eaaea50633bf840e5201

diff --git a/bridges/inc/bridge.hxx b/bridges/inc/bridge.hxx
index 5e3b146217b0..a01bb42bc163 100644
--- a/bridges/inc/bridge.hxx
+++ b/bridges/inc/bridge.hxx
@@ -20,7 +20,11 @@
 #ifndef INCLUDED_BRIDGES_INC_BRIDGE_HXX
 #define INCLUDED_BRIDGES_INC_BRIDGE_HXX
 
-#include "osl/interlck.h"
+#include <sal/config.h>
+
+#include <atomic>
+#include <cstddef>
+
 #include "sal/types.h"
 #include "typelib/typedescription.h"
 #include "uno/environment.h"
@@ -90,7 +94,7 @@ private:
         Bridge * pBridge;
     };
 
-    oslInterlockedCount nRef;
+    std::atomic<std::size_t> nRef;
 
     uno_ExtEnvironment * pCppEnv;
     uno_ExtEnvironment * pUnoEnv;
diff --git a/bridges/inc/cppinterfaceproxy.hxx b/bridges/inc/cppinterfaceproxy.hxx
index ccd83660059a..00972829a53c 100644
--- a/bridges/inc/cppinterfaceproxy.hxx
+++ b/bridges/inc/cppinterfaceproxy.hxx
@@ -20,7 +20,11 @@
 #ifndef INCLUDED_BRIDGES_INC_CPPINTERFACEPROXY_HXX
 #define INCLUDED_BRIDGES_INC_CPPINTERFACEPROXY_HXX
 
-#include "osl/interlck.h"
+#include <sal/config.h>
+
+#include <atomic>
+#include <cstddef>
+
 #include "rtl/ustring.hxx"
 #include "sal/types.h"
 #include "typelib/typedescription.h"
@@ -84,7 +88,7 @@ private:
     static com::sun::star::uno::XInterface * castProxyToInterface(
         CppInterfaceProxy * pProxy);
 
-    oslInterlockedCount nRef;
+    std::atomic<std::size_t> nRef;
     Bridge * pBridge;
 
     // mapping information
diff --git a/bridges/inc/unointerfaceproxy.hxx b/bridges/inc/unointerfaceproxy.hxx
index c9697d3491a8..c76b62dd28b0 100644
--- a/bridges/inc/unointerfaceproxy.hxx
+++ b/bridges/inc/unointerfaceproxy.hxx
@@ -20,7 +20,11 @@
 #ifndef INCLUDED_BRIDGES_INC_UNOINTERFACEPROXY_HXX
 #define INCLUDED_BRIDGES_INC_UNOINTERFACEPROXY_HXX
 
-#include "osl/interlck.h"
+#include <sal/config.h>
+
+#include <atomic>
+#include <cstddef>
+
 #include "rtl/ustring.hxx"
 #include "sal/types.h"
 #include "typelib/typedescription.h"
@@ -83,7 +87,7 @@ private:
 
     ~UnoInterfaceProxy();
 
-    oslInterlockedCount nRef;
+    std::atomic<std::size_t> nRef;
     Bridge * pBridge;
 
     // mapping information
diff --git a/bridges/source/cpp_uno/shared/bridge.cxx b/bridges/source/cpp_uno/shared/bridge.cxx
index f752c626d253..805e56968482 100644
--- a/bridges/source/cpp_uno/shared/bridge.cxx
+++ b/bridges/source/cpp_uno/shared/bridge.cxx
@@ -24,7 +24,6 @@
 #include "unointerfaceproxy.hxx"
 
 #include "com/sun/star/uno/XInterface.hpp"
-#include "osl/interlck.h"
 #include "rtl/ustring.h"
 #include "sal/types.h"
 #include "typelib/typedescription.h"
@@ -151,7 +150,7 @@ uno_Mapping * Bridge::createMapping(
 
 void Bridge::acquire()
 {
-    if (osl_atomic_increment( &nRef ) == 1)
+    if (++nRef == 1)
     {
         if (bExportCpp2Uno)
         {
@@ -172,7 +171,7 @@ void Bridge::acquire()
 
 void Bridge::release()
 {
-    if (! osl_atomic_decrement( &nRef ))
+    if (! --nRef )
     {
         ::uno_revokeMapping( bExportCpp2Uno ? &aCpp2Uno : &aUno2Cpp );
     }
diff --git a/bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx b/bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx
index 3fe7d98ea452..4a87eb389146 100644
--- a/bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx
+++ b/bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx
@@ -26,7 +26,6 @@
 
 #include "com/sun/star/uno/XInterface.hpp"
 #include "osl/getglobalmutex.hxx"
-#include "osl/interlck.h"
 #include "osl/mutex.hxx"
 #include "rtl/instance.hxx"
 #include "typelib/typedescription.h"
@@ -120,7 +119,7 @@ com::sun::star::uno::XInterface * CppInterfaceProxy::create(
 
 void CppInterfaceProxy::acquireProxy()
 {
-    if (osl_atomic_increment( &nRef ) == 1)
+    if (++nRef == 1)
     {
         // rebirth of proxy zombie
         // register at cpp env
@@ -134,7 +133,7 @@ void CppInterfaceProxy::acquireProxy()
 
 void CppInterfaceProxy::releaseProxy()
 {
-    if (! osl_atomic_decrement( &nRef )) // last release
+    if (! --nRef ) // last release
     {
         // revoke from cpp env
         (*pBridge->getCppEnv()->revokeInterface)(
diff --git a/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx b/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
index 698624ea49b0..b2c608403f34 100644
--- a/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
+++ b/bridges/source/cpp_uno/shared/unointerfaceproxy.cxx
@@ -22,7 +22,6 @@
 #include "bridge.hxx"
 
 #include "com/sun/star/uno/XInterface.hpp"
-#include "osl/interlck.h"
 #include "typelib/typedescription.h"
 #include "uno/dispatcher.h"
 
@@ -51,8 +50,7 @@ void freeUnoInterfaceProxy(uno_ExtEnvironment * pEnv, void * pProxy)
 
 void acquireProxy(uno_Interface * pUnoI)
 {
-    if (osl_atomic_increment(
-            & static_cast< UnoInterfaceProxy * >( pUnoI )->nRef ) == 1)
+    if (++static_cast< UnoInterfaceProxy * >( pUnoI )->nRef == 1)
     {
         // rebirth of proxy zombie
         // register at uno env
@@ -73,8 +71,7 @@ void acquireProxy(uno_Interface * pUnoI)
 
 void releaseProxy(uno_Interface * pUnoI)
 {
-    if (! osl_atomic_decrement(
-            & static_cast< UnoInterfaceProxy * >( pUnoI )->nRef ))
+    if (! --static_cast< UnoInterfaceProxy * >( pUnoI )->nRef )
     {
         // revoke from uno env on last release
         (*static_cast< UnoInterfaceProxy * >( pUnoI )->pBridge->getUnoEnv()->
diff --git a/bridges/source/jni_uno/jni_bridge.cxx b/bridges/source/jni_uno/jni_bridge.cxx
index 7926994ebfc2..c8106bb19390 100644
--- a/bridges/source/jni_uno/jni_bridge.cxx
+++ b/bridges/source/jni_uno/jni_bridge.cxx
@@ -194,7 +194,7 @@ namespace jni_uno
 
 void Bridge::acquire() const
 {
-    if (osl_atomic_increment( &m_ref ) == 1)
+    if (++m_ref == 1)
     {
         if (m_registered_java2uno)
         {
@@ -216,7 +216,7 @@ void Bridge::acquire() const
 
 void Bridge::release() const
 {
-    if (! osl_atomic_decrement( &m_ref ))
+    if (! --m_ref )
     {
         uno_revokeMapping(
             m_registered_java2uno
diff --git a/bridges/source/jni_uno/jni_bridge.h b/bridges/source/jni_uno/jni_bridge.h
index 8a216e01c46d..fbf2a8449737 100644
--- a/bridges/source/jni_uno/jni_bridge.h
+++ b/bridges/source/jni_uno/jni_bridge.h
@@ -20,11 +20,15 @@
 #ifndef INCLUDED_BRIDGES_SOURCE_JNI_UNO_JNI_BRIDGE_H
 #define INCLUDED_BRIDGES_SOURCE_JNI_UNO_JNI_BRIDGE_H
 
+#include <sal/config.h>
+
+#include <atomic>
+#include <cstddef>
+
 #include "jni_base.h"
 #include "jni_helper.h"
 
 #include "osl/diagnose.h"
-#include "osl/interlck.h"
 
 #include "uno/mapping.h"
 #include "uno/dispatcher.h"
@@ -46,7 +50,7 @@ struct Mapping : public uno_Mapping
 // Holds environments and mappings:
 struct Bridge
 {
-    mutable oslInterlockedCount m_ref;
+    mutable std::atomic<std::size_t> m_ref;
 
     uno_ExtEnvironment *        m_uno_env;
     uno_Environment *           m_java_env;
diff --git a/bridges/source/jni_uno/jni_uno2java.cxx b/bridges/source/jni_uno/jni_uno2java.cxx
index 58edc8dde002..117a520094fd 100644
--- a/bridges/source/jni_uno/jni_uno2java.cxx
+++ b/bridges/source/jni_uno/jni_uno2java.cxx
@@ -19,7 +19,9 @@
 
 #include <sal/config.h>
 
+#include <atomic>
 #include <cassert>
+#include <cstddef>
 #include <memory>
 
 #include <sal/alloca.h>
@@ -383,7 +385,7 @@ void Bridge::call_java(
 // an UNO proxy wrapping a Java interface
 struct UNO_proxy : public uno_Interface
 {
-    mutable oslInterlockedCount         m_ref;
+    mutable std::atomic<std::size_t>    m_ref;
     Bridge const *                      m_bridge;
 
     // mapping information
@@ -438,7 +440,7 @@ inline UNO_proxy::UNO_proxy(
 
 inline void UNO_proxy::acquire() const
 {
-    if (osl_atomic_increment( &m_ref ) == 1)
+    if (++m_ref == 1)
     {
         // rebirth of proxy zombie
         void * that = const_cast< UNO_proxy * >( this );
@@ -454,7 +456,7 @@ inline void UNO_proxy::acquire() const
 
 inline void UNO_proxy::release() const
 {
-    if (osl_atomic_decrement( &m_ref ) == 0)
+    if (--m_ref == 0)
     {
         // revoke from uno env on last release
         (*m_bridge->m_uno_env->revokeInterface)(


More information about the Libreoffice-commits mailing list