14 #ifndef OR_TOOLS_BASE_JNIUTIL_H_
15 #define OR_TOOLS_BASE_JNIUTIL_H_
28 if (cstr == NULL)
return NULL;
29 return env->NewStringUTF(cstr);
35 if (str == NULL)
return NULL;
36 jsize length = env->GetStringUTFLength(str);
37 const char* src = env->GetStringUTFChars(str, NULL);
38 char* dst =
new char[length + 1];
39 memcpy(dst, src, length);
41 env->ReleaseStringUTFChars(str, src);
48 jsize n = env->GetArrayLength(
a);
50 jbyte* jba =
new jbyte[n];
52 env->GetByteArrayRegion(
a, 0, n, jba);
55 return reinterpret_cast<char*
>(jba);
61 jbyteArray output = env->NewByteArray(size);
63 env->SetByteArrayRegion(output, 0, size,
reinterpret_cast<const jbyte*
>(
a));
static jbyteArray MakeJByteArray(JNIEnv *env, const char *a, int size)
static char * MakeCString(JNIEnv *env, jstring str)
static char * MakeCharArray(JNIEnv *env, jbyteArray a, int *size)
static jstring MakeJString(JNIEnv *env, const char *cstr)