adding operator* to help working with primitive values
authorMike Aizatsky <aizatsky@chromium.org>
Wed, 16 Nov 2016 19:35:37 +0000 (19:35 +0000)
committerMike Aizatsky <aizatsky@chromium.org>
Wed, 16 Nov 2016 19:35:37 +0000 (19:35 +0000)
Subscribers: kubabrecka

Differential Revision: https://reviews.llvm.org/D26756

llvm-svn: 287144

compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h

index e55fc4f..2ca3c40 100644 (file)
@@ -73,6 +73,8 @@ class AddrHashMap {
 
     ~Handle();
     T *operator->();
+    T &operator*();
+    const T &operator*() const;
     bool created() const;
     bool exists() const;
 
@@ -136,6 +138,16 @@ T *AddrHashMap<T, kSize>::Handle::operator->() {
   return &cell_->val;
 }
 
+template <typename T, uptr kSize>
+const T &AddrHashMap<T, kSize>::Handle::operator*() const {
+  return cell_->val;
+}
+
+template <typename T, uptr kSize>
+T &AddrHashMap<T, kSize>::Handle::operator*() {
+  return cell_->val;
+}
+
 template<typename T, uptr kSize>
 bool AddrHashMap<T, kSize>::Handle::created() const {
   return created_;