Lines Matching refs:env

35 JavaObject::JavaObject(jobject object, JNIEnv* env)
39 object_ = env->NewGlobalRef(object_);
66 JNIEnv* env = GetCurrentJNIEnv();
67 if (!env)
70 env->DeleteGlobalRef(object_);
91 JNIEnv* env = NULL;
92 const jint result = vm->GetEnv(reinterpret_cast<void**>(&env),
94 return result == JNI_OK ? env : NULL;
98 jstring ToJString(JNIEnv* env, const std::string& value) {
99 return env->NewStringUTF(value.c_str());
102 std::string ToCppString(JNIEnv* env, jstring value) {
104 const char* c_value = env->GetStringUTFChars(value, &isCopy);
107 env->ReleaseStringUTFChars(value, c_value);
121 bool IsJavaInstanceOf(JNIEnv* env, jobject object, const std::string& class_name) {
122 jclass clazz = env->FindClass(class_name.c_str());
123 return clazz ? env->IsInstanceOf(object, clazz) == JNI_TRUE : false;
127 jobject CreateJObject(JNIEnv* env, const std::string& class_name, const std::string& signature, T value) {
133 Value ToCValue(JNIEnv* env, jobject object) {
136 if (IsJavaInstanceOf(env, object, "java/lang/Boolean")) {
137 jmethodID method = env->GetMethodID(env->GetObjectClass(object), "booleanValue", "()Z");
138 result = MakeIntValue(env->CallBooleanMethod(object, method) == JNI_TRUE ? 1 : 0);
139 } else if (IsJavaInstanceOf(env, object, "java/lang/Integer")) {
140 jmethodID method = env->GetMethodID(env->GetObjectClass(object), "intValue", "()I");
141 result = MakeIntValue(env->CallIntMethod(object, method));
142 } else if (IsJavaInstanceOf(env, object, "java/lang/Float")) {
143 jmethodID method = env->GetMethodID(env->GetObjectClass(object), "floatValue", "()F");
144 result = MakeFloatValue(env->CallFloatMethod(object, method));
145 } else if (IsJavaInstanceOf(env, object, "java/lang/String")) {
146 result = MakeStringValue(ToCppString(env, static_cast<jstring>(object)).c_str());
147 } else if (IsJavaInstanceOf(env, object, "[I")) {
148 jint* elems = env->GetIntArrayElements(static_cast<jintArray>(object), NULL);
149 const jint count = env->GetArrayLength(static_cast<jintArray>(object));
151 env->ReleaseIntArrayElements(static_cast<jintArray>(object), elems, JNI_ABORT);
152 } else if (IsJavaInstanceOf(env, object, "[F")) {
153 jfloat* elems = env->GetFloatArrayElements(static_cast<jfloatArray>(object), NULL);
154 const jint count = env->GetArrayLength(static_cast<jfloatArray>(object));
156 env->ReleaseFloatArrayElements(static_cast<jfloatArray>(object), elems, JNI_ABORT);
162 jobject ToJObject(JNIEnv* env, const Value& value) {
165 jclass clazz = env->FindClass("java/lang/Integer");
166 jmethodID constructorID = env->GetMethodID(clazz, "<init>", "(I)V");
167 result = env->NewObject(clazz, constructorID, GetIntValue(value));
169 jclass clazz = env->FindClass("java/lang/Float");
170 jmethodID constructorID = env->GetMethodID(clazz, "<init>", "(F)V");
171 result = env->NewObject(clazz, constructorID, GetFloatValue(value));
173 result = ToJString(env, GetStringValue(value));
175 result = env->NewIntArray(GetValueCount(value));
176 env->SetIntArrayRegion(static_cast<jintArray>(result),
181 result = env->NewFloatArray(GetValueCount(value));
182 env->SetFloatArrayRegion(static_cast<jfloatArray>(result),