testing: bin/memaslap
[awesomized/libmemcached] / test / lib / common.hpp
index ecfa07d413535b8aab9ed83650729320d7d3670b..b5ef3525d2f35503d38a5ca54f38f3c4b8bf3246 100644 (file)
@@ -105,7 +105,7 @@ public:
   }
 };
 
-template<class T, void (*F)(void*) = free>
+template<class T>
 class Malloced {
   T *ptr;
 public:
@@ -113,9 +113,15 @@ public:
   Malloced(T *ptr_)
   : ptr{ptr_}
   {}
+  Malloced &operator=(T *ptr_) {
+    if (ptr)
+      free(ptr);
+    ptr = ptr_;
+    return *this;
+  }
   ~Malloced() {
     if(ptr)
-      F(ptr);
+      free(ptr);
   }
   auto operator *() {
     return ptr;