Fix ref<T>::~ref to not try to RemoveRef if already deleted.
[zcpointer.git] / zcpointer.h
index 06ce70c21c00b859e961382f4405cf9e9322df52..31550514b7ce0c1be38f47db0aae7c2ac154ec31 100644 (file)
@@ -99,8 +99,10 @@ class ref {
   }
 
   ~ref() {
-    ptr_->get_deleter().RemoveRef(this);
-    MarkDeleted();
+    if (!IsDeleted()) {
+      ptr_->get_deleter().RemoveRef(this);
+      MarkDeleted();
+    }
   }
 
   T* operator->() const {