Custom memory patch work (based on Sean Chittenden's patch)
[awesomized/libmemcached] / lib / memcached_callback.c
index 7149e276332252803f8ee35cb89114374494714f..5348183cf89e134d17d1f7daeb2d8991a9087c88 100644 (file)
@@ -30,6 +30,24 @@ memcached_return memcached_callback_set(memcached_st *ptr,
       ptr->on_clone= func;
       break;
     }
+  case MEMCACHED_CALLBACK_MALLOC_FUNCTION:
+    {
+      memcached_malloc_function func= (memcached_malloc_function)data;
+      ptr->call_malloc= func;
+      break;
+    }
+  case MEMCACHED_CALLBACK_REALLOC_FUNCTION:
+    {
+      memcached_realloc_function func= (memcached_realloc_function)data;
+      ptr->call_realloc= func;
+      break;
+    }
+  case MEMCACHED_CALLBACK_FREE_FUNCTION:
+    {
+      memcached_free_function func= (memcached_free_function)data;
+      ptr->call_free= func;
+      break;
+    }
   default:
     return MEMCACHED_FAILURE;
   }
@@ -58,6 +76,21 @@ void *memcached_callback_get(memcached_st *ptr,
       *error= ptr->on_clone ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE;
       return (void *)ptr->on_clone;
     }
+  case MEMCACHED_CALLBACK_MALLOC_FUNCTION:
+    {
+      *error= ptr->call_malloc ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE;
+      return (void *)ptr->call_malloc;
+    }
+  case MEMCACHED_CALLBACK_REALLOC_FUNCTION:
+    {
+      *error= ptr->call_realloc ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE;
+      return (void *)ptr->call_realloc;
+    }
+  case MEMCACHED_CALLBACK_FREE_FUNCTION:
+    {
+      *error= ptr->call_free ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE;
+      return (void *)ptr->call_free;
+    }
   default:
       WATCHPOINT_ASSERT(0);
       *error= MEMCACHED_FAILURE;