summaryrefslogtreecommitdiff
path: root/binaryurp
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-08-25 20:32:22 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-08-25 22:46:11 +0200
commite9d64ca080ed0cf2dcb56be13bee1bffbff880fd (patch)
treefc6c94eddae8ba33c8e1731bf18e055cbf2f8ef8 /binaryurp
parent1584d5215cd38be1f7cf14efbfac2e08ef4a0705 (diff)
Replace use of oslInterlockedCount with std::atomic
The assumption in using std::size_t is that every acquisition can be associated with a unique memory location in the local address space, so the counter cannot overflow. Change-Id: I0d004a81d9bf52cf07d13481d9024fcc10b6db6d Reviewed-on: https://gerrit.libreoffice.org/41580 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'binaryurp')
-rw-r--r--binaryurp/source/proxy.cxx4
-rw-r--r--binaryurp/source/proxy.hxx6
2 files changed, 6 insertions, 4 deletions
diff --git a/binaryurp/source/proxy.cxx b/binaryurp/source/proxy.cxx
index 1834968fa50b..699037f915dd 100644
--- a/binaryurp/source/proxy.cxx
+++ b/binaryurp/source/proxy.cxx
@@ -76,13 +76,13 @@ Proxy::Proxy(
void Proxy::do_acquire() {
- if (osl_atomic_increment(&references_) == 1) {
+ if (++references_ == 1) {
bridge_->resurrectProxy(*this);
}
}
void Proxy::do_release() {
- if (osl_atomic_decrement(&references_) == 0) {
+ if (--references_ == 0) {
bridge_->revokeProxy(*this);
}
}
diff --git a/binaryurp/source/proxy.hxx b/binaryurp/source/proxy.hxx
index 5ad8cee120dc..e8ed0fea2dad 100644
--- a/binaryurp/source/proxy.hxx
+++ b/binaryurp/source/proxy.hxx
@@ -22,7 +22,9 @@
#include "sal/config.h"
-#include "osl/interlck.h"
+#include <atomic>
+#include <cstddef>
+
#include "rtl/ref.hxx"
#include "rtl/ustring.hxx"
#include "typelib/typedescription.h"
@@ -78,7 +80,7 @@ private:
rtl::Reference< Bridge > bridge_;
OUString oid_;
com::sun::star::uno::TypeDescription type_;
- oslInterlockedCount references_;
+ std::atomic<std::size_t> references_;
};
}