return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,
arg_conv = base_conv,
arg_conv_name = ty_info.var_name + "_conv",
- ret_conv = None, ret_conv_name = None)
- base_conv = base_conv + "\nFREE((void*)" + ty_info.var_name + ");";
+ ret_conv = ("CANT PASS TRAIT TO Java?", ""), ret_conv_name = "NO CONV POSSIBLE")
+ if ty_info.rust_obj != "LDKu8slice":
+ # Don't bother free'ing slices passed in - we often pass them Rust -> Rust
+ base_conv = base_conv + "\nFREE((void*)" + ty_info.var_name + ");";
if ty_info.rust_obj in opaque_structs:
return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,
arg_conv = base_conv + "\n" + ty_info.var_name + "_conv.is_owned = true;",
arg_conv_name = ty_info.var_name + "_conv",
- ret_conv = None, ret_conv_name = None)
+ ret_conv = ("long " + ty_info.var_name + "_ref = (long)&", ";"), ret_conv_name = ty_info.var_name + "_ref")
return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,
arg_conv = base_conv, arg_conv_name = ty_info.var_name + "_conv",
- ret_conv = None, ret_conv_name = None)
+ ret_conv = ("long " + ty_info.var_name + "_ref = (long)&", ";"), ret_conv_name = ty_info.var_name + "_ref")
else:
assert(not is_free)
return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,
arg_conv = ty_info.rust_obj + "* " + ty_info.var_name + "_conv = (" + ty_info.rust_obj + "*)" + ty_info.var_name + ";",
arg_conv_name = ty_info.var_name + "_conv",
- ret_conv = None, ret_conv_name = None)
+ ret_conv = None, ret_conv_name = None) # its a pointer, no conv needed
elif ty_info.is_ptr:
return ConvInfo(ty_info = ty_info, arg_name = ty_info.var_name,
arg_conv = None, arg_conv_name = ty_info.var_name, ret_conv = None, ret_conv_name = None)
public static native boolean deref_bool(long ptr);
public static native long deref_long(long ptr);
public static native void free_heap_ptr(long ptr);
- public static native long u8_vec_to_heap_slice(long vec);
public static native long u8_vec_len(long vec);
""")
JNIEXPORT void JNICALL Java_org_ldk_impl_bindings_free_1heap_1ptr (JNIEnv * env, jclass _a, jlong ptr) {
FREE((void*)ptr);
}
-JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_u8_1vec_1to_1heap_1slice (JNIEnv * env, jclass _a, jlong ptr) {
- LDKCVec_u8Z *vec = (LDKCVec_u8Z*)ptr;
- LDKu8slice *slice = (LDKu8slice*)MALLOC(sizeof(LDKu8slice), "u8slice");
- slice->data = vec->data;
- slice->datalen = vec->datalen;
- return (long)slice;
-}
JNIEXPORT jlong JNICALL Java_org_ldk_impl_bindings_u8_1vec_1len (JNIEnv * env, jclass _a, jlong ptr) {
LDKCVec_u8Z *vec = (LDKCVec_u8Z*)ptr;
return (long)vec->datalen;