summaryrefslogtreecommitdiff
path: root/src/runtime/java/jni_utils.c
diff options
context:
space:
mode:
authorKrasimir Angelov <kr.angelov@gmail.com>2017-09-06 12:38:42 +0200
committerKrasimir Angelov <kr.angelov@gmail.com>2017-09-06 12:38:42 +0200
commit15d014abb825837f0fd7c9e17d5907001135faaf (patch)
treebc569f465432042702dfaa240746b8c6db609588 /src/runtime/java/jni_utils.c
parent18f2135785a71a1e93519a060d40b7ba523cf03b (diff)
the parser in the C runtime can now detect incomplete sentences just like the parser in the Haskell runtime. This is also reflected in all bindings.
Diffstat (limited to 'src/runtime/java/jni_utils.c')
-rw-r--r--src/runtime/java/jni_utils.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/runtime/java/jni_utils.c b/src/runtime/java/jni_utils.c
index 59c4a7e54..f897b8372 100644
--- a/src/runtime/java/jni_utils.c
+++ b/src/runtime/java/jni_utils.c
@@ -34,10 +34,8 @@ gu2j_string(JNIEnv *env, GuString s) {
}
JPGF_INTERNAL jstring
-gu2j_string_buf(JNIEnv *env, GuStringBuf* sbuf) {
- const char* s = gu_string_buf_data(sbuf);
+gu2j_string_len(JNIEnv *env, const char* s, size_t len) {
const char* utf8 = s;
- size_t len = gu_string_buf_length(sbuf);
jchar* utf16 = alloca(len*sizeof(jchar));
jchar* dst = utf16;
@@ -56,6 +54,11 @@ gu2j_string_buf(JNIEnv *env, GuStringBuf* sbuf) {
return (*env)->NewString(env, utf16, dst-utf16);
}
+JPGF_INTERNAL jstring
+gu2j_string_buf(JNIEnv *env, GuStringBuf* sbuf) {
+ return gu2j_string_len(env, gu_string_buf_data(sbuf), gu_string_buf_length(sbuf));
+}
+
JPGF_INTERNAL GuString
j2gu_string(JNIEnv *env, jstring s, GuPool* pool) {
GuString str = (*env)->GetStringUTFChars(env, s, 0);