about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-04 14:44:04 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-07-04 14:44:04 +0200
commitfff2effd5bf28281cd560439106fc9189e43b03f (patch)
tree8106b28bd216b95425f2a07f6d8cd61b4039550a /src
parentbb7e473e7bd6a94b81a6fe763a240916edd46de9 (diff)
downloadbox64-fff2effd5bf28281cd560439106fc9189e43b03f.tar.gz
box64-fff2effd5bf28281cd560439106fc9189e43b03f.zip
Added pcre_free wrapped symbol (still for #17)
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)