Skip to content

Commit 3c8c362

Browse files
converter handles bool types
1 parent 71fb653 commit 3c8c362

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

templates/module/Source/modulejni/Private/Generated/jni/datajavaconverter.cpp.tpl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,19 @@ void {{$className }}::fill{{Camel .Name }}(JNIEnv* env, jobject input, {{$struct
8383
fill{{Camel .Type }}Array(env, {{snake .Name}}_value, {{$structName}}.{{$cppFieldName}});
8484
{{- else if (eq .KindType "string")}}
8585
{{$structName}}.{{$cppFieldName}} = FJavaHelper::ObjectArrayToFStringTArray(env, {{snake .Name}}_value);
86+
87+
{{- else if (eq .KindType "bool")}}
88+
jsize len{{snake .Name}} = env->GetArrayLength({{snake .Name}}_value);
89+
{{$structName}}.{{$cppFieldName}}.Reserve(len{{snake .Name}});
90+
TArray<jboolean> Temp;
91+
Temp.SetNumUninitialized(len{{snake .Name}});
92+
Env->GetBooleanArrayRegion({{snake .Name}}_value, 0, len{{snake .Name}}, Temp.GetData());
93+
for (int i = 0; i < len{{snake .Name}}; i++)
94+
{
95+
{{$structName}}.{{$cppFieldName}}.Add(Temp[i] == JNI_TRUE);
96+
}
97+
Env->DeleteLocalRef({{snake .Name}}_value);
98+
8699
{{- else if .IsPrimitive }}
87100
jsize len{{snake .Name}} = env->GetArrayLength({{snake .Name}}_value);
88101
{{$structName}}.{{$cppFieldName}}.Reserve(len{{snake .Name}});
@@ -161,6 +174,15 @@ jobject {{$className }}::makeJava{{Camel .Name }}(JNIEnv* env, const {{$structTy
161174
}
162175
auto {{$tmpObjName}}Wrapper = FJavaHelper::ToJavaStringArray(env,{{$cppFieldName}}StringViews);
163176
jobjectArray {{$tmpObjName}} = static_cast<jobjectArray>(Env->NewLocalRef(*{{$tmpObjName}}Wrapper));
177+
{{- else if (eq .KindType "bool")}}
178+
auto len{{snake .Name}} = {{$structName}}.{{$cppFieldName}}.Num();
179+
TArray<jboolean> Temp;
180+
Temp.SetNumUninitialized(len{{snake .Name}});
181+
for (int i = 0; i < len{{snake .Name}}; i++)
182+
{
183+
Temp[i] = {{$structName}}.{{$cppFieldName}}[i] ? JNI_TRUE : JNI_FALSE;
184+
}
185+
Env->SetBooleanArrayRegion({{snake .Name}}_value, 0, len{{snake .Name}}, Temp.GetData());
164186
{{- else if .IsPrimitive }}
165187
auto len{{snake .Name}} = {{$structName}}.{{$cppFieldName}}.Num();
166188
jFieldId_{{snake .Name}} = (*env)->New{{jniToEnvNameType .}}Array(len{{snake .Name}});

0 commit comments

Comments
 (0)