# HG changeset patch
# User Mark <evenson@panix.com>
# Date 1391763396 -3600
#      Fri Feb 07 09:56:36 2014 +0100
# Node ID ed0967abe2632b17680fd18e07bdb8763048a288
# Parent  e0548937cfe3e0fbf3b6cfd299dc866d59d7a028
Don't convert multi-dimensional Java arrays to Lisp vectors.

See <http://abcl.org/trac/ticket/347>.

diff -r e0548937cfe3 -r ed0967abe263 src/org/armedbear/lisp/JavaObject.java
--- a/src/org/armedbear/lisp/JavaObject.java	Thu Feb 06 15:10:20 2014 +0000
+++ b/src/org/armedbear/lisp/JavaObject.java	Fri Feb 07 09:56:36 2014 +0100
@@ -249,7 +249,10 @@
         if (obj instanceof Character)
             return LispCharacter.getInstance((Character)obj);
 
-        if (obj instanceof Object[]) {
+        // Convert only one dimensional Java arrays to Lisp vectors
+        if (obj instanceof Object[]
+            && ! intendedClass.getName().startsWith("[", 1))
+        {
             Object[] array = (Object[]) obj;
             SimpleVector v = new SimpleVector(array.length);
             for (int i = array.length; i-- > 0;)
