[Pkg-ocaml-maint-commits] [SCM] camljava packaging branch, master, updated. upstream/0.3.orig-11-g53adf57

Stefano Zacchiroli zack at upsilon.cc
Sat Nov 28 09:43:09 UTC 2009


The following commit has been merged in the master branch:
commit 53adf573870c60982d1347916ab3c04c4d4ebbaf
Author: Stefano Zacchiroli <zack at upsilon.cc>
Date:   Sat Nov 28 10:41:46 2009 +0100

    add the ability to inhibit automatic string conversion

diff --git a/debian/patches/0006-ability-to-inhibit-automatic-string-convertion.patch b/debian/patches/0006-ability-to-inhibit-automatic-string-convertion.patch
new file mode 100644
index 0000000..d1c6f35
--- /dev/null
+++ b/debian/patches/0006-ability-to-inhibit-automatic-string-convertion.patch
@@ -0,0 +1,73 @@
+From: Stefano Zacchiroli <zack at upsilon.cc>
+Date: Sat, 28 Nov 2009 10:38:01 +0100
+Subject: [PATCH] ability to inhibit automatic string convertion
+
+Rationale: automatic convertion of Java string to OCaml string is not always
+desirable (e.g. because Java strings are real Unicode string whereas OCaml's
+are not). Using this patch automatic conversion can be globally disabled by
+CamlJava users.
+
+This ability is used by O'Jacare.
+---
+ lib/jni.mli    |    2 ++
+ lib/jni.mlp    |    2 ++
+ lib/jnistubs.c |   12 +++++++++++-
+ 3 files changed, 15 insertions(+), 1 deletions(-)
+
+diff --git a/lib/jni.mli b/lib/jni.mli
+index ad829b3..db71589 100644
+--- a/lib/jni.mli
++++ b/lib/jni.mli
+@@ -16,6 +16,8 @@
+ 
+ external set_debug: bool -> unit = "camljava_set_debug"
+ 
++external set_string_auto_conv: bool -> unit = "camljava_set_strconv"
++
+ (* Object operations *)
+ 
+ type obj
+diff --git a/lib/jni.mlp b/lib/jni.mlp
+index d1febac..108f97d 100644
+--- a/lib/jni.mlp
++++ b/lib/jni.mlp
+@@ -16,6 +16,8 @@
+ 
+ external set_debug: bool -> unit = "camljava_set_debug"
+ 
++external set_string_auto_conv: bool -> unit = "camljava_set_strconv"
++
+ external init: string -> unit = "camljava_Init"
+ external shutdown: unit -> unit = "camljava_Shutdown"
+ 
+diff --git a/lib/jnistubs.c b/lib/jnistubs.c
+index 27ff365..bfc6c9d 100644
+--- a/lib/jnistubs.c
++++ b/lib/jnistubs.c
+@@ -523,6 +523,15 @@ value camljava_MakeJavaString (value vstr)
+   return alloc_jobject(jstr);
+ }
+ 
++/* Automatically convert Java string to Caml string?
++   True by default; globally set to false by O'Jacare. */
++static int string_auto_conv = 1;
++
++value camljava_set_strconv(value v) {
++  string_auto_conv = Bool_val(v);
++  return Val_unit;
++}
++
+ static value extract_java_string (JNIEnv * env, jstring jstr)
+ {
+   jsize len;
+@@ -852,7 +861,8 @@ static value camljava_callback(JNIEnv * env,
+       else if ((*env)->IsInstanceOf(env, arg, caml_double))
+         carg = copy_double((*env)->GetDoubleField(env, arg,
+                                                 caml_double_contents));
+-      else if ((*env)->IsInstanceOf(env, arg, java_lang_string))
++      else if (string_auto_conv
++	       && (*env)->IsInstanceOf(env, arg, java_lang_string))
+         carg = extract_java_string(env, (jstring) arg);
+       else
+         carg = alloc_jobject(arg);
+-- 
diff --git a/debian/patches/series b/debian/patches/series
index 7238bfa..8619e1b 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@
 0003-GC-global-reference-fix-for-JDK-1.6.patch
 0004-enforce-callback-invocation-from-main-thread.patch
 0005-debugging-facility-for-Java-exceptions.patch
+0006-ability-to-inhibit-automatic-string-convertion.patch

-- 
camljava packaging



More information about the Pkg-ocaml-maint-commits mailing list