X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=typescript_strings.py;h=0e13c8d6d5510dc106bf2c63940e6e6dd0de35e2;hb=56e9910ffaa7fccf2cb777dc9cf55e01a9681543;hp=e631237ce5a0d69a04ce9d66fab241af68c88ef9;hpb=37e5ae059926cd54d7c5aac06a5eef6785662f94;p=ldk-java diff --git a/typescript_strings.py b/typescript_strings.py index e631237c..0e13c8d6 100644 --- a/typescript_strings.py +++ b/typescript_strings.py @@ -85,7 +85,7 @@ 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); -void assert(scalar expression); +void assert(bool expression); """ if not DEBUG: @@ -198,6 +198,7 @@ _Static_assert(sizeof(void*) == 4, "Pointers mut be 32 bits"); typedef struct int64_tArray {uint32_t len;int64_t *ptr;} int64_tArray; typedef struct uint32_tArray {uint32_t len;int32_t *ptr;} uint32_tArray; +typedef struct ptrArray {uint32_t len;int32_t *ptr;} ptrArray; typedef struct int8_tArray {uint32_t len;int8_t *ptr;} int8_tArray; typedef struct jstring {} jstring; @@ -220,11 +221,10 @@ import * as bindings from '../bindings' // TODO: figure out location self.ptr_native_ty = "number" # "uint32_t" self.result_c_ty = "uint32_t" self.owned_str_to_c_call = ("conv_owned_string(", ")") - self.ptr_arr = "uint32_tArray" + self.ptr_arr = "ptrArray" self.get_native_arr_len_call = ("", ".len") - self.get_native_arr_ptr_call = ("", ".ptr") - def release_native_arr_ptr_call(self, arr_var, arr_ptr_var): + def release_native_arr_ptr_call(self, ty_info, arr_var, arr_ptr_var): return None def create_native_arr_call(self, arr_len, ty_info): if ty_info.c_ty == "int8_tArray": @@ -233,6 +233,9 @@ import * as bindings from '../bindings' // TODO: figure out location return "{ .len = " + arr_len + ", .ptr = MALLOC(" + arr_len + " * sizeof(int64_t), \"Native " + ty_info.c_ty + " Bytes\") }" elif ty_info.c_ty == "uint32_tArray": return "{ .len = " + arr_len + ", .ptr = MALLOC(" + arr_len + " * sizeof(int32_t), \"Native " + ty_info.c_ty + " Bytes\") }" + elif ty_info.c_ty == "ptrArray": + assert ty_info.subty is not None and ty_info.subty.c_ty.endswith("Array") + return "{ .len = " + arr_len + ", .ptr = MALLOC(" + arr_len + " * sizeof(int32_t), \"Native Object Bytes\") }" else: print("Need to create arr!", ty_info.c_ty) return ty_info.c_ty @@ -251,6 +254,12 @@ import * as bindings from '../bindings' // TODO: figure out location return "(" + ty_info.subty.c_ty + "*) " + arr_name + ".ptr" def get_native_arr_elem(self, arr_name, idxc, ty_info): assert False # Only called if above is None + def get_native_arr_ptr_call(self, ty_info): + if ty_info.subty is not None: + return ("(" + ty_info.subty.c_ty + "*)", ".ptr") + return ("(" + ty_info.c_ty + "*)", ".ptr") + def get_native_arr_entry_call(self, ty_info, arr_name, idxc, entry_access): + return None def cleanup_native_arr_ref_contents(self, arr_name, dest_name, arr_len, ty_info): if ty_info.c_ty == "int8_tArray": return None @@ -275,7 +284,7 @@ const wasm = wasmInstance.exports; """ return '' - def init_str(self, c_array_class_caches): + def init_str(self): return "" def native_c_unitary_enum_map(self, struct_name, variants):