Skip to content
This repository has been archived by the owner on Mar 26, 2020. It is now read-only.

Commit

Permalink
Fix old cast style use in generated file and support lib.
Browse files Browse the repository at this point in the history
  • Loading branch information
Damien Merenne committed Oct 20, 2019
1 parent 3aa304c commit 06326d1
Show file tree
Hide file tree
Showing 39 changed files with 117 additions and 115 deletions.
14 changes: 8 additions & 6 deletions src/source/JNIGenerator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ class JNIGenerator(spec: Spec) extends Generator(spec) {
w.wl(s"const auto& data = ::djinni::JniClass<$jniHelper>::get();")
writeAlignedCall(w, "return {", r.fields, "}", f => {
val fieldId = "data.field_" + idJava.field(f.ident)
val jniFieldAccess = toJniCall(f.ty, (jt: String) => s"jniEnv->Get${jt}Field(j, $fieldId)")
val jniFieldAccess = toJniCall(f.ty, (jt: String) => s"jniEnv->Get${jt}Field(j, $fieldId)") + ")"
jniMarshal.toCpp(f.ty, jniFieldAccess)
})
w.wl(";")
Expand Down Expand Up @@ -298,7 +298,9 @@ class JNIGenerator(spec: Spec) extends Generator(spec) {
}
else
w.w(")")
w.wl(";")
if (m.ret.nonEmpty)
w.w(")");
w.wl(";");
w.wl(s"::djinni::jniExceptionCheck(jniEnv);")
m.ret.fold()(ty => {
(spec.cppNnCheckExpression, isInterface(ty.resolved)) match {
Expand Down Expand Up @@ -404,11 +406,11 @@ class JNIGenerator(spec: Spec) extends Generator(spec) {

def toJniCall(ty: TypeRef, f: String => String): String = toJniCall(ty.resolved, f, false)
def toJniCall(m: MExpr, f: String => String, needRef: Boolean): String = m.base match {
case p: MPrimitive => f(if (needRef) "Object" else IdentStyle.camelUpper(p.jName))
case MString => "(jstring)" + f("Object")
case p: MPrimitive => "(" + f(if (needRef) "Object" else IdentStyle.camelUpper(p.jName))
case MString => "reinterpret_cast<jstring>(" + f("Object")
case MOptional => toJniCall(m.args.head, f, true)
case MBinary => "(jbyteArray)" + f("Object")
case _ => f("Object")
case MBinary => "reinterpret_cast<jbyteArray>(" + f("Object")
case _ => "(" + f("Object")
}

def cppTypeArgs(params: Seq[TypeParam]): String =
Expand Down
2 changes: 1 addition & 1 deletion support-lib/objc/DJIMarshal+Private.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ struct WString {
assert(string);
NSStringEncoding encoding = getWCharEncoding<sizeof(wchar_t)>();
NSData* data = [string dataUsingEncoding:encoding];
return std::wstring((wchar_t*)[data bytes], [data length] / sizeof (wchar_t));
return std::wstring(reinterpret_cast<const wchar_t*>([data bytes]), [data length] / sizeof (wchar_t));
}

static ObjcType fromCpp(const CppType& string) {
Expand Down
28 changes: 14 additions & 14 deletions test-suite/generated-src/jni/NativeAssortedPrimitives.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,20 @@ auto NativeAssortedPrimitives::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 15);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeAssortedPrimitives>::get();
return {::djinni::Bool::toCpp(jniEnv, jniEnv->GetBooleanField(j, data.field_mB)),
::djinni::I8::toCpp(jniEnv, jniEnv->GetByteField(j, data.field_mEight)),
::djinni::I16::toCpp(jniEnv, jniEnv->GetShortField(j, data.field_mSixteen)),
::djinni::I32::toCpp(jniEnv, jniEnv->GetIntField(j, data.field_mThirtytwo)),
::djinni::I64::toCpp(jniEnv, jniEnv->GetLongField(j, data.field_mSixtyfour)),
::djinni::F32::toCpp(jniEnv, jniEnv->GetFloatField(j, data.field_mFthirtytwo)),
::djinni::F64::toCpp(jniEnv, jniEnv->GetDoubleField(j, data.field_mFsixtyfour)),
::djinni::Optional<std::experimental::optional, ::djinni::Bool>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOB)),
::djinni::Optional<std::experimental::optional, ::djinni::I8>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOEight)),
::djinni::Optional<std::experimental::optional, ::djinni::I16>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOSixteen)),
::djinni::Optional<std::experimental::optional, ::djinni::I32>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOThirtytwo)),
::djinni::Optional<std::experimental::optional, ::djinni::I64>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOSixtyfour)),
::djinni::Optional<std::experimental::optional, ::djinni::F32>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOFthirtytwo)),
::djinni::Optional<std::experimental::optional, ::djinni::F64>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mOFsixtyfour))};
return {::djinni::Bool::toCpp(jniEnv, (jniEnv->GetBooleanField(j, data.field_mB))),
::djinni::I8::toCpp(jniEnv, (jniEnv->GetByteField(j, data.field_mEight))),
::djinni::I16::toCpp(jniEnv, (jniEnv->GetShortField(j, data.field_mSixteen))),
::djinni::I32::toCpp(jniEnv, (jniEnv->GetIntField(j, data.field_mThirtytwo))),
::djinni::I64::toCpp(jniEnv, (jniEnv->GetLongField(j, data.field_mSixtyfour))),
::djinni::F32::toCpp(jniEnv, (jniEnv->GetFloatField(j, data.field_mFthirtytwo))),
::djinni::F64::toCpp(jniEnv, (jniEnv->GetDoubleField(j, data.field_mFsixtyfour))),
::djinni::Optional<std::experimental::optional, ::djinni::Bool>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOB))),
::djinni::Optional<std::experimental::optional, ::djinni::I8>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOEight))),
::djinni::Optional<std::experimental::optional, ::djinni::I16>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOSixteen))),
::djinni::Optional<std::experimental::optional, ::djinni::I32>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOThirtytwo))),
::djinni::Optional<std::experimental::optional, ::djinni::I64>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOSixtyfour))),
::djinni::Optional<std::experimental::optional, ::djinni::F32>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOFthirtytwo))),
::djinni::Optional<std::experimental::optional, ::djinni::F64>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mOFsixtyfour)))};
}

} // namespace djinni_generated
26 changes: 13 additions & 13 deletions test-suite/generated-src/jni/NativeClientInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,47 @@ ::testsuite::ClientReturnedRecord NativeClientInterface::JavaProxy::get_record(i
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeClientInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_getRecord,
::djinni::get(::djinni::I64::fromCpp(jniEnv, c_record_id)),
::djinni::get(::djinni::String::fromCpp(jniEnv, c_utf8string)),
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni::String>::fromCpp(jniEnv, c_misc)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_getRecord,
::djinni::get(::djinni::I64::fromCpp(jniEnv, c_record_id)),
::djinni::get(::djinni::String::fromCpp(jniEnv, c_utf8string)),
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni::String>::fromCpp(jniEnv, c_misc))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni_generated::NativeClientReturnedRecord::toCpp(jniEnv, jret);
}
double NativeClientInterface::JavaProxy::identifier_check(const std::vector<uint8_t> & c_data, int32_t c_r, int64_t c_jret) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeClientInterface>::get();
auto jret = jniEnv->CallDoubleMethod(Handle::get().get(), data.method_identifierCheck,
::djinni::get(::djinni::Binary::fromCpp(jniEnv, c_data)),
::djinni::get(::djinni::I32::fromCpp(jniEnv, c_r)),
::djinni::get(::djinni::I64::fromCpp(jniEnv, c_jret)));
auto jret = (jniEnv->CallDoubleMethod(Handle::get().get(), data.method_identifierCheck,
::djinni::get(::djinni::Binary::fromCpp(jniEnv, c_data)),
::djinni::get(::djinni::I32::fromCpp(jniEnv, c_r)),
::djinni::get(::djinni::I64::fromCpp(jniEnv, c_jret))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::F64::toCpp(jniEnv, jret);
}
std::string NativeClientInterface::JavaProxy::return_str() {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeClientInterface>::get();
auto jret = (jstring)jniEnv->CallObjectMethod(Handle::get().get(), data.method_returnStr);
auto jret = reinterpret_cast<jstring>(jniEnv->CallObjectMethod(Handle::get().get(), data.method_returnStr));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::String::toCpp(jniEnv, jret);
}
std::string NativeClientInterface::JavaProxy::meth_taking_interface(const std::shared_ptr<::testsuite::ClientInterface> & c_i) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeClientInterface>::get();
auto jret = (jstring)jniEnv->CallObjectMethod(Handle::get().get(), data.method_methTakingInterface,
::djinni::get(::djinni_generated::NativeClientInterface::fromCpp(jniEnv, c_i)));
auto jret = reinterpret_cast<jstring>(jniEnv->CallObjectMethod(Handle::get().get(), data.method_methTakingInterface,
::djinni::get(::djinni_generated::NativeClientInterface::fromCpp(jniEnv, c_i))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::String::toCpp(jniEnv, jret);
}
std::string NativeClientInterface::JavaProxy::meth_taking_optional_interface(const std::shared_ptr<::testsuite::ClientInterface> & c_i) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeClientInterface>::get();
auto jret = (jstring)jniEnv->CallObjectMethod(Handle::get().get(), data.method_methTakingOptionalInterface,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeClientInterface>::fromCpp(jniEnv, c_i)));
auto jret = reinterpret_cast<jstring>(jniEnv->CallObjectMethod(Handle::get().get(), data.method_methTakingOptionalInterface,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeClientInterface>::fromCpp(jniEnv, c_i))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::String::toCpp(jniEnv, jret);
}
Expand Down
6 changes: 3 additions & 3 deletions test-suite/generated-src/jni/NativeClientReturnedRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ auto NativeClientReturnedRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 4);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeClientReturnedRecord>::get();
return {::djinni::I64::toCpp(jniEnv, jniEnv->GetLongField(j, data.field_mRecordId)),
::djinni::String::toCpp(jniEnv, (jstring)jniEnv->GetObjectField(j, data.field_mContent)),
::djinni::Optional<std::experimental::optional, ::djinni::String>::toCpp(jniEnv, (jstring)jniEnv->GetObjectField(j, data.field_mMisc))};
return {::djinni::I64::toCpp(jniEnv, (jniEnv->GetLongField(j, data.field_mRecordId))),
::djinni::String::toCpp(jniEnv, reinterpret_cast<jstring>(jniEnv->GetObjectField(j, data.field_mContent))),
::djinni::Optional<std::experimental::optional, ::djinni::String>::toCpp(jniEnv, reinterpret_cast<jstring>(jniEnv->GetObjectField(j, data.field_mMisc)))};
}

} // namespace djinni_generated
4 changes: 2 additions & 2 deletions test-suite/generated-src/jni/NativeConstantRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ auto NativeConstantRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 3);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeConstantRecord>::get();
return {::djinni::I32::toCpp(jniEnv, jniEnv->GetIntField(j, data.field_mSomeInteger)),
::djinni::String::toCpp(jniEnv, (jstring)jniEnv->GetObjectField(j, data.field_mSomeString))};
return {::djinni::I32::toCpp(jniEnv, (jniEnv->GetIntField(j, data.field_mSomeInteger))),
::djinni::String::toCpp(jniEnv, reinterpret_cast<jstring>(jniEnv->GetObjectField(j, data.field_mSomeString)))};
}

} // namespace djinni_generated
2 changes: 1 addition & 1 deletion test-suite/generated-src/jni/NativeDateRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ auto NativeDateRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 2);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeDateRecord>::get();
return {::djinni::Date::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mCreatedAt))};
return {::djinni::Date::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mCreatedAt)))};
}

} // namespace djinni_generated
20 changes: 10 additions & 10 deletions test-suite/generated-src/jni/NativeEnumUsageInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,44 +19,44 @@ ::testsuite::color NativeEnumUsageInterface::JavaProxy::e(::testsuite::color c_e
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_e,
::djinni::get(::djinni_generated::NativeColor::fromCpp(jniEnv, c_e)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_e,
::djinni::get(::djinni_generated::NativeColor::fromCpp(jniEnv, c_e))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni_generated::NativeColor::toCpp(jniEnv, jret);
}
std::experimental::optional<::testsuite::color> NativeEnumUsageInterface::JavaProxy::o(std::experimental::optional<::testsuite::color> c_o) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_o,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_o)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_o,
::djinni::get(::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_o))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::vector<::testsuite::color> NativeEnumUsageInterface::JavaProxy::l(const std::vector<::testsuite::color> & c_l) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_l,
::djinni::get(::djinni::List<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_l)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_l,
::djinni::get(::djinni::List<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_l))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::unordered_set<::testsuite::color> NativeEnumUsageInterface::JavaProxy::s(const std::unordered_set<::testsuite::color> & c_s) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_s,
::djinni::get(::djinni::Set<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_s)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_s,
::djinni::get(::djinni::Set<::djinni_generated::NativeColor>::fromCpp(jniEnv, c_s))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
std::unordered_map<::testsuite::color, ::testsuite::color> NativeEnumUsageInterface::JavaProxy::m(const std::unordered_map<::testsuite::color, ::testsuite::color> & c_m) {
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeEnumUsageInterface>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_m,
::djinni::get(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_m)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_m,
::djinni::get(::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::fromCpp(jniEnv, c_m))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, jret);
}
Expand Down
10 changes: 5 additions & 5 deletions test-suite/generated-src/jni/NativeEnumUsageRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ auto NativeEnumUsageRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 6);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeEnumUsageRecord>::get();
return {::djinni_generated::NativeColor::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mE)),
::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mO)),
::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mL)),
::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mS)),
::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, jniEnv->GetObjectField(j, data.field_mM))};
return {::djinni_generated::NativeColor::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mE))),
::djinni::Optional<std::experimental::optional, ::djinni_generated::NativeColor>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mO))),
::djinni::List<::djinni_generated::NativeColor>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mL))),
::djinni::Set<::djinni_generated::NativeColor>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mS))),
::djinni::Map<::djinni_generated::NativeColor, ::djinni_generated::NativeColor>::toCpp(jniEnv, (jniEnv->GetObjectField(j, data.field_mM)))};
}

} // namespace djinni_generated
2 changes: 1 addition & 1 deletion test-suite/generated-src/jni/NativeExtendedRecord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ auto NativeExtendedRecord::toCpp(JNIEnv* jniEnv, JniType j) -> CppType {
::djinni::JniLocalScope jscope(jniEnv, 2);
assert(j != nullptr);
const auto& data = ::djinni::JniClass<NativeExtendedRecord>::get();
return {::djinni::Bool::toCpp(jniEnv, jniEnv->GetBooleanField(j, data.field_mFoo))};
return {::djinni::Bool::toCpp(jniEnv, (jniEnv->GetBooleanField(j, data.field_mFoo)))};
}

} // namespace djinni_generated
4 changes: 2 additions & 2 deletions test-suite/generated-src/jni/NativeExternInterface2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ ::ExternRecordWithDerivings NativeExternInterface2::JavaProxy::foo(const std::sh
auto jniEnv = ::djinni::jniGetThreadEnv();
::djinni::JniLocalScope jscope(jniEnv, 10);
const auto& data = ::djinni::JniClass<::djinni_generated::NativeExternInterface2>::get();
auto jret = jniEnv->CallObjectMethod(Handle::get().get(), data.method_foo,
::djinni::get(::djinni_generated::NativeTestHelpers::fromCpp(jniEnv, c_i)));
auto jret = (jniEnv->CallObjectMethod(Handle::get().get(), data.method_foo,
::djinni::get(::djinni_generated::NativeTestHelpers::fromCpp(jniEnv, c_i))));
::djinni::jniExceptionCheck(jniEnv);
return ::djinni_generated::NativeExternRecordWithDerivings::toCpp(jniEnv, jret);
}
Expand Down
Loading

0 comments on commit 06326d1

Please sign in to comment.