Compare commits
1 Commits
master
...
waldon-13-
| Author | SHA1 | Date | |
|---|---|---|---|
| 511df960e4 |
1
gojni.h
1
gojni.h
|
|
@ -15,6 +15,7 @@ __attribute__ ((visibility ("hidden"))) jfieldID _jni_GetFieldID(JNIEnv *env, jc
|
||||||
__attribute__ ((visibility ("hidden"))) jfieldID _jni_GetStaticFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
|
__attribute__ ((visibility ("hidden"))) jfieldID _jni_GetStaticFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig);
|
||||||
__attribute__ ((visibility ("hidden"))) jsize _jni_GetStringLength(JNIEnv *env, jstring str);
|
__attribute__ ((visibility ("hidden"))) jsize _jni_GetStringLength(JNIEnv *env, jstring str);
|
||||||
__attribute__ ((visibility ("hidden"))) const jchar *_jni_GetStringChars(JNIEnv *env, jstring str);
|
__attribute__ ((visibility ("hidden"))) const jchar *_jni_GetStringChars(JNIEnv *env, jstring str);
|
||||||
|
__attribute__ ((visibility ("hidden"))) void _jni_ReleaseStringChars(JNIEnv *env, jstring str, const jchar *chars);
|
||||||
__attribute__ ((visibility ("hidden"))) jstring _jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len);
|
__attribute__ ((visibility ("hidden"))) jstring _jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len);
|
||||||
__attribute__ ((visibility ("hidden"))) jboolean _jni_IsSameObject(JNIEnv *env, jobject ref1, jobject ref2);
|
__attribute__ ((visibility ("hidden"))) jboolean _jni_IsSameObject(JNIEnv *env, jobject ref1, jobject ref2);
|
||||||
__attribute__ ((visibility ("hidden"))) jboolean _jni_IsInstanceOf(JNIEnv *env, jobject obj, jclass cls);
|
__attribute__ ((visibility ("hidden"))) jboolean _jni_IsInstanceOf(JNIEnv *env, jobject obj, jclass cls);
|
||||||
|
|
|
||||||
4
jni.c
4
jni.c
|
|
@ -78,6 +78,10 @@ const jchar *_jni_GetStringChars(JNIEnv *env, jstring str) {
|
||||||
return (*env)->GetStringChars(env, str, NULL);
|
return (*env)->GetStringChars(env, str, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _jni_ReleaseStringChars(JNIEnv *env, jstring str, const jchar *chars) {
|
||||||
|
(*env)->ReleaseStringChars(env, str, chars);
|
||||||
|
}
|
||||||
|
|
||||||
jstring _jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len) {
|
jstring _jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len) {
|
||||||
return (*env)->NewString(env, unicodeChars, len);
|
return (*env)->NewString(env, unicodeChars, len);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
4
jni.go
4
jni.go
|
|
@ -411,6 +411,10 @@ func GoString(e Env, str String) string {
|
||||||
}
|
}
|
||||||
strlen := C._jni_GetStringLength(e.env, C.jstring(str))
|
strlen := C._jni_GetStringLength(e.env, C.jstring(str))
|
||||||
chars := C._jni_GetStringChars(e.env, C.jstring(str))
|
chars := C._jni_GetStringChars(e.env, C.jstring(str))
|
||||||
|
if chars == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
defer C._jni_ReleaseStringChars(e.env, C.jstring(str), chars)
|
||||||
var utf16Chars []uint16
|
var utf16Chars []uint16
|
||||||
hdr := (*reflect.SliceHeader)(unsafe.Pointer(&utf16Chars))
|
hdr := (*reflect.SliceHeader)(unsafe.Pointer(&utf16Chars))
|
||||||
hdr.Data = uintptr(unsafe.Pointer(chars))
|
hdr.Data = uintptr(unsafe.Pointer(chars))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user