about summary refs log tree commit diff
path: root/src/engine/external/libwebsockets/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/external/libwebsockets/alloc.c')
-rw-r--r--src/engine/external/libwebsockets/alloc.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/engine/external/libwebsockets/alloc.c b/src/engine/external/libwebsockets/alloc.c
new file mode 100644
index 00000000..3bc5260e
--- /dev/null
+++ b/src/engine/external/libwebsockets/alloc.c
@@ -0,0 +1,30 @@
+#include "private-libwebsockets.h"
+
+static void *_realloc(void *ptr, size_t size)
+{
+	if (size)
+		return realloc(ptr, size);
+	else if (ptr)
+		free(ptr);
+	return NULL;
+}
+
+void *(*_lws_realloc)(void *ptr, size_t size) = _realloc;
+
+void *lws_realloc(void *ptr, size_t size)
+{
+	return _lws_realloc(ptr, size);
+}
+
+void *lws_zalloc(size_t size)
+{
+	void *ptr = _lws_realloc(NULL, size);
+	if (ptr)
+		memset(ptr, 0, size);
+	return ptr;
+}
+
+void lws_set_allocator(void *(*cb)(void *ptr, size_t size))
+{
+	_lws_realloc = cb;
+}