projects
/
ldk-java
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
b1216b1
)
Skip manual leak checking on OSX as -Wl,-wrap is too complicated
author
Matt Corallo
<git@bluematt.me>
Mon, 14 Jun 2021 21:09:55 +0000
(21:09 +0000)
committer
Matt
<matt@Matts-iMac-Pro.local>
Tue, 15 Jun 2021 20:38:08 +0000
(16:38 -0400)
java_strings.py
patch
|
blob
|
history
diff --git
a/java_strings.py
b/java_strings.py
index 25eec48e83ca9762522e8a5f322efa512c54efb3..6bfd571bbf991caa8b5be640b409ce0ab33ac1d3 100644
(file)
--- a/
java_strings.py
+++ b/
java_strings.py
@@
-1,5
+1,6
@@
from bindingstypes import *
from enum import Enum
from bindingstypes import *
from enum import Enum
+import sys
class Target(Enum):
JAVA = 1,
class Target(Enum):
JAVA = 1,
@@
-126,13
+127,15
@@
void __attribute__((constructor)) spawn_stderr_redirection() {
else:
self.c_file_pfx = self.c_file_pfx + "#define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__)\n"
else:
self.c_file_pfx = self.c_file_pfx + "#define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__)\n"
- if not DEBUG:
+ if not DEBUG
or sys.platform == "darwin"
:
self.c_file_pfx = self.c_file_pfx + """#define MALLOC(a, _) malloc(a)
#define FREE(p) if ((uint64_t)(p) > 1024) { free(p); }
self.c_file_pfx = self.c_file_pfx + """#define MALLOC(a, _) malloc(a)
#define FREE(p) if ((uint64_t)(p) > 1024) { free(p); }
-#define DO_ASSERT(a) (void)(a)
+"""
+ if not DEBUG:
+ self.c_file_pfx += """#define DO_ASSERT(a) (void)(a)
#define CHECK(a)
"""
#define CHECK(a)
"""
-
else
:
+
if DEBUG
:
self.c_file_pfx = self.c_file_pfx + """#include <assert.h>
// Always run a, then assert it is true:
#define DO_ASSERT(a) do { bool _assert_val = (a); assert(_assert_val); } while(0)
self.c_file_pfx = self.c_file_pfx + """#include <assert.h>
// Always run a, then assert it is true:
#define DO_ASSERT(a) do { bool _assert_val = (a); assert(_assert_val); } while(0)
@@
-146,7
+149,10
@@
void __attribute__((constructor)) debug_log_version() {
DEBUG_PRINT("LDK C Bindings version did not match the header we built against\\n");
DEBUG_PRINT("Loaded LDK-Java Bindings with LDK %s and LDK-C-Bindings %s\\n", check_get_ldk_version(), check_get_ldk_bindings_version());
}
DEBUG_PRINT("LDK C Bindings version did not match the header we built against\\n");
DEBUG_PRINT("Loaded LDK-Java Bindings with LDK %s and LDK-C-Bindings %s\\n", check_get_ldk_version(), check_get_ldk_bindings_version());
}
+"""
+ if sys.platform != "darwin":
+ self.c_file_pfx += """
// Running a leak check across all the allocations and frees of the JDK is a mess,
// so instead we implement our own naive leak checker here, relying on the -wrap
// linker option to wrap malloc/calloc/realloc/free, tracking everyhing allocated
// Running a leak check across all the allocations and frees of the JDK is a mess,
// so instead we implement our own naive leak checker here, relying on the -wrap
// linker option to wrap malloc/calloc/realloc/free, tracking everyhing allocated
@@
-154,8
+160,8
@@
void __attribute__((constructor)) debug_log_version() {
#include <threads.h>
"""
#include <threads.h>
"""
- if self.target == Target.ANDROID:
- self.c_file_pfx = self.c_file_pfx + """
+
if self.target == Target.ANDROID:
+
self.c_file_pfx = self.c_file_pfx + """
#include <unwind.h>
#include <dlfcn.h>
#include <unwind.h>
#include <dlfcn.h>
@@
-196,9
+202,9
@@
void backtrace_symbols_fd(void ** buffer, int count, int _fd) {
}
}
"""
}
}
"""
- else:
- self.c_file_pfx = self.c_file_pfx + "#include <execinfo.h>\n"
- self.c_file_pfx = self.c_file_pfx + """
+
else:
+
self.c_file_pfx = self.c_file_pfx + "#include <execinfo.h>\n"
+
self.c_file_pfx = self.c_file_pfx + """
#include <unistd.h>
static mtx_t allocation_mtx;
#include <unistd.h>
static mtx_t allocation_mtx;