projects
/
ldk-java
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add test HTML file demonstrating linking and calling
[ldk-java]
/
typescript_strings.py
diff --git
a/typescript_strings.py
b/typescript_strings.py
index 0f38cd2139edaebf244a74d59898d9bb64b546a1..b5fcdc9696ba2397d07275dc4ca6830b6027d9fd 100644
(file)
--- a/
typescript_strings.py
+++ b/
typescript_strings.py
@@
-105,7
+105,9
@@
void *memcpy(void *dest, const void *src, size_t n);
int memcmp(const void *s1, const void *s2, size_t n);
void __attribute__((noreturn)) abort(void);
int memcmp(const void *s1, const void *s2, size_t n);
void __attribute__((noreturn)) abort(void);
-void assert(bool expression);
+static inline void assert(bool expression) {
+ if (!expression) { abort(); }
+}
"""
if not DEBUG:
"""
if not DEBUG:
@@
-249,8
+251,6
@@
import * as bindings from '../bindings' // TODO: figure out location
"""
self.c_fn_ty_pfx = ""
"""
self.c_fn_ty_pfx = ""
- self.c_fn_name_pfx = ""
- self.c_fn_args_pfx = "void* ctx_TODO"
self.file_ext = ".ts"
self.ptr_c_ty = "uint32_t"
self.ptr_native_ty = "number"
self.file_ext = ".ts"
self.ptr_c_ty = "uint32_t"
self.ptr_native_ty = "number"
@@
-303,6
+303,9
@@
import * as bindings from '../bindings' // TODO: figure out location
def str_ref_to_c_call(self, var_name, str_len):
return "str_ref_to_ts(" + var_name + ", " + str_len + ")"
def str_ref_to_c_call(self, var_name, str_len):
return "str_ref_to_ts(" + var_name + ", " + str_len + ")"
+ def c_fn_name_define_pfx(self, fn_name, have_args):
+ return " __attribute__((visibility(\"default\"))) TS_" + fn_name + "("
+
def wasm_import_header(self, target):
if target == Target.NODEJS:
return """
def wasm_import_header(self, target):
if target == Target.NODEJS:
return """
@@
-681,7
+684,7
@@
const decodeString = (stringPointer, free = true) => {
elif not fn_line.ret_ty_info.passed_as_ptr:
out_c = out_c + "\treturn js_invoke_function_" + str(len(fn_line.args_ty)) + "(j_calls->" + fn_line.fn_name + "_meth"
else:
elif not fn_line.ret_ty_info.passed_as_ptr:
out_c = out_c + "\treturn js_invoke_function_" + str(len(fn_line.args_ty)) + "(j_calls->" + fn_line.fn_name + "_meth"
else:
- out_c = out_c + "\t" + fn_line.ret_ty_info.rust_obj + "* ret
; // TODO: Call " + fn_line.fn_name + " on j_calls with instance obj, returning a pointer
"
+ out_c = out_c + "\t" + fn_line.ret_ty_info.rust_obj + "* ret
= (" + fn_line.ret_ty_info.rust_obj + "*)js_invoke_function_" + str(len(fn_line.args_ty)) + "(j_calls->" + fn_line.fn_name + "_meth
"
for idx, arg_info in enumerate(fn_line.args_ty):
if arg_info.ret_conv is not None:
for idx, arg_info in enumerate(fn_line.args_ty):
if arg_info.ret_conv is not None:
@@
-704,7
+707,7
@@
const decodeString = (stringPointer, free = true) => {
out_c = out_c + "\treturn (void*) this_arg;\n"
out_c = out_c + "}\n"
out_c = out_c + "\treturn (void*) this_arg;\n"
out_c = out_c + "}\n"
- out_c = out_c + "static inline " + struct_name + " " + struct_name + "_init (
" + self.c_fn_args_pfx + ",
/*TODO: JS Object Reference */void* o"
+ out_c = out_c + "static inline " + struct_name + " " + struct_name + "_init (/*TODO: JS Object Reference */void* o"
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.c_ty + " " + var.arg_name
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.c_ty + " " + var.arg_name
@@
-742,7
+745,7
@@
const decodeString = (stringPointer, free = true) => {
out_c = out_c + "\t\t." + var.var_name + " = " + var.var_name + ",\n"
out_c = out_c + "\t\t.set_" + var.var_name + " = NULL,\n"
else:
out_c = out_c + "\t\t." + var.var_name + " = " + var.var_name + ",\n"
out_c = out_c + "\t\t.set_" + var.var_name + " = NULL,\n"
else:
- out_c = out_c + "\t\t." + var[1] + " = " + var[0] + "_init(
NULL,
" + var[1] + "),\n"
+ out_c = out_c + "\t\t." + var[1] + " = " + var[0] + "_init(" + var[1] + "),\n"
out_c = out_c + "\t};\n"
for var in field_var_conversions:
if not isinstance(var, ConvInfo):
out_c = out_c + "\t};\n"
for var in field_var_conversions:
if not isinstance(var, ConvInfo):
@@
-750,7
+753,7
@@
const decodeString = (stringPointer, free = true) => {
out_c = out_c + "\treturn ret;\n"
out_c = out_c + "}\n"
out_c = out_c + "\treturn ret;\n"
out_c = out_c + "}\n"
- out_c = out_c + self.c_fn_ty_pfx + "long " + self.c_fn_name_
pfx + struct_name.replace("_", "_1") + "_1new (" + self.c_fn_args_pfx + ",
/*TODO: JS Object Reference */void* o"
+ out_c = out_c + self.c_fn_ty_pfx + "long " + self.c_fn_name_
define_pfx(struct_name + "_new", True) + "
/*TODO: JS Object Reference */void* o"
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.c_ty + " " + var.arg_name
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.c_ty + " " + var.arg_name
@@
-758,7
+761,7
@@
const decodeString = (stringPointer, free = true) => {
out_c = out_c + ", /*TODO: JS Object Reference */ void* " + var[1]
out_c = out_c + ") {\n"
out_c = out_c + "\t" + struct_name + " *res_ptr = MALLOC(sizeof(" + struct_name + "), \"" + struct_name + "\");\n"
out_c = out_c + ", /*TODO: JS Object Reference */ void* " + var[1]
out_c = out_c + ") {\n"
out_c = out_c + "\t" + struct_name + " *res_ptr = MALLOC(sizeof(" + struct_name + "), \"" + struct_name + "\");\n"
- out_c = out_c + "\t*res_ptr = " + struct_name + "_init(
NULL,
o"
+ out_c = out_c + "\t*res_ptr = " + struct_name + "_init(o"
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.arg_name
for var in field_var_conversions:
if isinstance(var, ConvInfo):
out_c = out_c + ", " + var.arg_name
@@
-828,7
+831,7
@@
const decodeString = (stringPointer, free = true) => {
out_java += ("\tstatic { " + struct_name + ".init(); }\n")
out_java += ("\tpublic static native " + struct_name + " " + struct_name + "_ref_from_ptr(long ptr);\n");
out_java += ("\tstatic { " + struct_name + ".init(); }\n")
out_java += ("\tpublic static native " + struct_name + " " + struct_name + "_ref_from_ptr(long ptr);\n");
- out_c += (self.c_fn_ty_pfx + self.c_complex_enum_pass_ty(struct_name) +
" " + self.c_fn_name_pfx + struct_name.replace("_", "_1") + "_1ref_1from_1ptr (" + self.c_fn_args_pfx + ", "
+ self.ptr_c_ty + " ptr) {\n")
+ out_c += (self.c_fn_ty_pfx + self.c_complex_enum_pass_ty(struct_name) +
self.c_fn_name_define_pfx(struct_name + "_ref_from_ptr", True)
+ self.ptr_c_ty + " ptr) {\n")
out_c += ("\t" + struct_name + " *obj = (" + struct_name + "*)ptr;\n")
out_c += ("\tswitch(obj->tag) {\n")
for var in variant_list:
out_c += ("\t" + struct_name + " *obj = (" + struct_name + "*)ptr;\n")
out_c += ("\tswitch(obj->tag) {\n")
for var in variant_list:
@@
-892,7
+895,7
@@
const decodeString = (stringPointer, free = true) => {
if return_type_info.ret_conv is not None:
ret_conv_pfx, ret_conv_sfx = return_type_info.ret_conv
out_java += (" " + method_name + "(")
if return_type_info.ret_conv is not None:
ret_conv_pfx, ret_conv_sfx = return_type_info.ret_conv
out_java += (" " + method_name + "(")
- out_c += (" "
+ self.c_fn_name_pfx + method_name.replace('_', '_1') + "(" + self.c_fn_args_pfx
)
+ out_c += (" "
+ self.c_fn_name_define_pfx(method_name, True)
)
method_argument_string = ""
native_call_argument_string = ""
method_argument_string = ""
native_call_argument_string = ""
@@
-900,7
+903,6
@@
const decodeString = (stringPointer, free = true) => {
if idx != 0:
method_argument_string += (", ")
native_call_argument_string += ', '
if idx != 0:
method_argument_string += (", ")
native_call_argument_string += ', '
- if arg_conv_info.c_ty != "void":
out_c += (", ")
if arg_conv_info.c_ty != "void":
out_c += (arg_conv_info.c_ty + " " + arg_conv_info.arg_name)
out_c += (", ")
if arg_conv_info.c_ty != "void":
out_c += (arg_conv_info.c_ty + " " + arg_conv_info.arg_name)