Merge "Add tags for hidl interfaces."
diff --git a/transport/allocator/1.0/Android.bp b/transport/allocator/1.0/Android.bp
index b836d26..0cff7f3 100644
--- a/transport/allocator/1.0/Android.bp
+++ b/transport/allocator/1.0/Android.bp
@@ -35,7 +35,7 @@
     ],
 }
 
-cc_library_shared {
+cc_library {
     name: "android.hidl.allocator@1.0",
     defaults: ["hidl-module-defaults"],
     generated_sources: ["android.hidl.allocator@1.0_genc++"],
diff --git a/transport/include/hidl/ConcurrentMap.h b/transport/include/hidl/ConcurrentMap.h
index cd55ad4..4066869 100644
--- a/transport/include/hidl/ConcurrentMap.h
+++ b/transport/include/hidl/ConcurrentMap.h
@@ -50,6 +50,20 @@
         return mMap.erase(k);
     }
 
+    size_type eraseIfEqual(const K& k, const V& v) {
+        std::unique_lock<std::mutex> _lock(mMutex);
+        const_iterator iter = mMap.find(k);
+        if (iter == mMap.end()) {
+            return 0;
+        }
+        if (iter->second == v) {
+            mMap.erase(iter);
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
     std::unique_lock<std::mutex> lock() { return std::unique_lock<std::mutex>(mMutex); }
 
     void setLocked(K&& k, V&& v) { mMap[std::forward<K>(k)] = std::forward<V>(v); }
diff --git a/transport/memory/1.0/Android.bp b/transport/memory/1.0/Android.bp
index ec9d0eb..0ae2422 100644
--- a/transport/memory/1.0/Android.bp
+++ b/transport/memory/1.0/Android.bp
@@ -42,7 +42,7 @@
     ],
 }
 
-cc_library_shared {
+cc_library {
     name: "android.hidl.memory@1.0",
     defaults: ["hidl-module-defaults"],
     generated_sources: ["android.hidl.memory@1.0_genc++"],
diff --git a/transport/token/1.0/Android.bp b/transport/token/1.0/Android.bp
index d5825c2..5e5f29d 100644
--- a/transport/token/1.0/Android.bp
+++ b/transport/token/1.0/Android.bp
@@ -35,7 +35,7 @@
     ],
 }
 
-cc_library_shared {
+cc_library {
     name: "android.hidl.token@1.0",
     defaults: ["hidl-module-defaults"],
     generated_sources: ["android.hidl.token@1.0_genc++"],