class Target(Enum):
JAVA = 1,
ANDROID = 2
+ MACOS = 3
class Consts:
def __init__(self, DEBUG: bool, target: Target, **kwargs):
else:
self.c_file_pfx = self.c_file_pfx + "#define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__)\n"
- if not DEBUG or sys.platform == "darwin":
+ if not DEBUG or self.target == Target.MACOS:
self.c_file_pfx = self.c_file_pfx + """#define MALLOC(a, _) malloc(a)
#define FREE(p) if ((uint64_t)(p) > 4096) { free(p); }
#define CHECK_ACCESS(p)
}
"""
- if sys.platform != "darwin":
+ if self.target != Target.MACOS:
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
res = res + "\t" + ty + "_clz = (*env)->FindClass(env, \"" + ty.replace("arr_of_", "[") + "\");\n"
res = res + "\tCHECK(" + ty + "_clz != NULL);\n"
res = res + "\t" + ty + "_clz = (*env)->NewGlobalRef(env, " + ty + "_clz);\n"
- res = res + "\tString_clz = (*env)->FindClass(env, \"Ljava/lang/String;\");\n"
+ res = res + "\tString_clz = (*env)->FindClass(env, \"java/lang/String\");\n"
res = res + "\tCHECK(String_clz != NULL);\n"
res = res + "\tString_clz = (*env)->NewGlobalRef(env, String_clz);\n"
extra_java_struct_out += "\t\tif (!(o instanceof " + struct_meth + ")) return false;\n"
extra_java_struct_out += "\t\treturn this.eq((" + struct_meth + ")o);\n"
extra_java_struct_out += "\t}\n"
+ if meth_n == "wait":
+ meth_n = "wait_indefinite"
out_java_struct += ("\tpublic " + return_type_info.java_hu_ty + " " + meth_n + "(")
for idx, arg in enumerate(argument_types):
if idx != 0: