diff options
Diffstat (limited to 'platform/android/src/conversion/collection.hpp')
-rw-r--r-- | platform/android/src/conversion/collection.hpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/platform/android/src/conversion/collection.hpp b/platform/android/src/conversion/collection.hpp index 4256d5f969..da5eed64d2 100644 --- a/platform/android/src/conversion/collection.hpp +++ b/platform/android/src/conversion/collection.hpp @@ -32,6 +32,20 @@ inline std::vector<std::string> toVector(JNIEnv& env, jni::jarray<jni::jobject>& for (std::size_t i = 0; i < len; i++) { jni::jstring* jstr = reinterpret_cast<jni::jstring*>(jni::GetObjectArrayElement(env, array, i)); vector.push_back(*convert<std::string, jni::String>(env, jni::String(jstr))); + jni::DeleteLocalRef(env, jstr); + } + + return vector; +} + +inline std::vector<std::string> toVector(JNIEnv& env, jni::Array<jni::String> array) { + std::vector<std::string> vector; + std::size_t len = array.Length(env); + + for (std::size_t i = 0; i < len; i++) { + jni::String jstr = array.Get(env, i); + vector.push_back(*convert<std::string, jni::String>(env, jstr)); + jni::DeleteLocalRef(env, jstr); } return vector; |