summaryrefslogtreecommitdiff
path: root/libs/samba/src/main/cpp/jni.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/samba/src/main/cpp/jni.cpp')
-rw-r--r--libs/samba/src/main/cpp/jni.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/samba/src/main/cpp/jni.cpp b/libs/samba/src/main/cpp/jni.cpp
index be13df7..30f03a9 100644
--- a/libs/samba/src/main/cpp/jni.cpp
+++ b/libs/samba/src/main/cpp/jni.cpp
@@ -97,4 +97,14 @@ LocalRef<jstring> UTF8ToString(JNIEnv* env, const std::string& str) {
return {env, env->NewStringUTF(str.c_str())};
}
+LocalRef<jobjectArray> CreateArray(JNIEnv* env, const Ref<jclass>& element_class, std::vector<LocalRef<jobject>> objects) {
+ auto ret = LocalRef<jobjectArray>(env, env->NewObjectArray(static_cast<jsize>(objects.size()), element_class.get(), nullptr));
+ ABORT_IF_NULL(env, ret);
+ jsize i = 0;
+ for (auto&& obj : objects) {
+ env->SetObjectArrayElement(ret.get(), i++, obj.release());
+ }
+ return ret;
+}
+
} // namespace jni