about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/wrapped/wrappedlibpcre.c13
-rwxr-xr-xsrc/wrapped/wrappedlibpcre_private.h2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/wrapped/wrappedlibpcre.c b/src/wrapped/wrappedlibpcre.c
index ea18e6bb..fbd2218b 100755
--- a/src/wrapped/wrappedlibpcre.c
+++ b/src/wrapped/wrappedlibpcre.c
@@ -10,9 +10,22 @@
 #include "bridge.h"
 #include "librarian/library_private.h"
 #include "x64emu.h"
+#include "callback.h"
+#include "debug.h"
 
 const char* libpcreName = "libpcre.so.3";
 #define LIBNAME libpcre
 
+typedef void  (*pcre_free_t)(void *);
+EXPORT uintptr_t my_pcre_free;
+
+void wrapped_pcre_free(void* p) {
+    RunFunction(my_context, my_pcre_free, 1, p);
+}
+EXPORT pcre_free_t pcre_free = wrapped_pcre_free;
+
+#define CUSTOM_INIT \
+    my_pcre_free = AddCheckBridge(lib->priv.w.bridge, vFp, free, 0, "free");
+
 #include "wrappedlib_init.h"
 
diff --git a/src/wrapped/wrappedlibpcre_private.h b/src/wrapped/wrappedlibpcre_private.h
index 6c6ffbca..b851fc31 100755
--- a/src/wrapped/wrappedlibpcre_private.h
+++ b/src/wrapped/wrappedlibpcre_private.h
@@ -11,7 +11,7 @@ GO(pcre_copy_named_substring, iFpppippi)
 GO(pcre_copy_substring, iFppiipi)
 GO(pcre_dfa_exec, iFpppiiipipi)
 GO(pcre_exec, iFpppiiipi)
-//DATAM(pcre_free, //void  (*pcre_free)(void *);
+DATAM(pcre_free, sizeof(void*))
 GO(pcre_free_study, vFp)
 GO(pcre_free_substring, vFp)
 GO(pcre_free_substring_list, vFp)