projects
/
ldk-java
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
inch towards more map_trait cleanup for Typescript
[ldk-java]
/
genbindings.py
diff --git
a/genbindings.py
b/genbindings.py
index ecdb6bd7a59aa479cd0b697047ffbe9ca68d30d2..2443dac65feaed290d4088dd00ad106f0fb21901 100755
(executable)
--- a/
genbindings.py
+++ b/
genbindings.py
@@
-170,6
+170,8
@@
def java_c_types(fn_arg, ret_arr_len):
is_primitive = False
arr_len = None
is_primitive = False
arr_len = None
+ mapped_type = []
+ java_type_plural = None
if fn_arg.startswith("void"):
java_ty = "void"
c_ty = "void"
if fn_arg.startswith("void"):
java_ty = "void"
c_ty = "void"
@@
-183,26
+185,30
@@
def java_c_types(fn_arg, ret_arr_len):
fn_arg = fn_arg[4:].strip()
is_primitive = True
elif fn_arg.startswith("uint8_t"):
fn_arg = fn_arg[4:].strip()
is_primitive = True
elif fn_arg.startswith("uint8_t"):
- java_ty = "byte"
+ mapped_type = consts.c_type_map['uint8_t']
+ java_ty = mapped_type[0]
c_ty = "int8_t"
fn_ty_arg = "B"
fn_arg = fn_arg[7:].strip()
is_primitive = True
elif fn_arg.startswith("uint16_t"):
c_ty = "int8_t"
fn_ty_arg = "B"
fn_arg = fn_arg[7:].strip()
is_primitive = True
elif fn_arg.startswith("uint16_t"):
- java_ty = "short"
+ mapped_type = consts.c_type_map['uint16_t']
+ java_ty = mapped_type[0]
c_ty = "jshort"
fn_ty_arg = "S"
fn_arg = fn_arg[8:].strip()
is_primitive = True
elif fn_arg.startswith("uint32_t"):
c_ty = "jshort"
fn_ty_arg = "S"
fn_arg = fn_arg[8:].strip()
is_primitive = True
elif fn_arg.startswith("uint32_t"):
- java_ty = "int"
+ mapped_type = consts.c_type_map['uint32_t']
+ java_ty = mapped_type[0]
c_ty = "int32_t"
fn_ty_arg = "I"
fn_arg = fn_arg[8:].strip()
is_primitive = True
elif fn_arg.startswith("uint64_t") or fn_arg.startswith("uintptr_t"):
# TODO: uintptr_t is arch-dependent :(
c_ty = "int32_t"
fn_ty_arg = "I"
fn_arg = fn_arg[8:].strip()
is_primitive = True
elif fn_arg.startswith("uint64_t") or fn_arg.startswith("uintptr_t"):
# TODO: uintptr_t is arch-dependent :(
- java_ty = "long"
+ mapped_type = consts.c_type_map['long']
+ java_ty = mapped_type[0]
c_ty = "int64_t"
fn_ty_arg = "J"
if fn_arg.startswith("uint64_t"):
c_ty = "int64_t"
fn_ty_arg = "J"
if fn_arg.startswith("uint64_t"):
@@
-295,7
+301,11
@@
def java_c_types(fn_arg, ret_arr_len):
if var_is_arr is not None or ret_arr_len is not None:
assert(not take_by_ptr)
assert(not is_ptr)
if var_is_arr is not None or ret_arr_len is not None:
assert(not take_by_ptr)
assert(not is_ptr)
- java_ty = java_ty + "[]"
+ # is there a special case for plurals?
+ if len(mapped_type) == 2:
+ java_ty = mapped_type[1]
+ else:
+ java_ty = java_ty + "[]"
c_ty = c_ty + "Array"
if var_is_arr is not None:
if var_is_arr.group(1) == "":
c_ty = c_ty + "Array"
if var_is_arr is not None:
if var_is_arr.group(1) == "":