Opened 11 years ago
Closed 11 years ago
#347 closed defect (wontfix)
Java FFI conversion of arrays is inconsistent between call and return types
Reported by: | Mark Evenson | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.3.0 |
Component: | interpreter | Version: | 1.3.0-dev |
Keywords: | Cc: | ||
Parent Tickets: |
Description (last modified by )
In http://article.gmane.org/gmane.lisp.armedbear.devel/3085, Cyrus notes that:
I am trying to connect ABCL up with some java code that uses multidimensional arrays of the form: int[][] theArray = new int[4][4]; The problem is that when I call this code I get something like this in return: #(#<jarray [I <at> 2d983837 {6492BA43}> #<jarray [I <at> 5d02b84a {5D9131FA}> #<jarray [I <at> 67684413 {6E4D706E}> #<jarray [I <at> 1e107e55 {4CD60DDE}>) that is a lisp array that contains 4 java arrays. I can’t pass this off to a method like this: static public int[][] arrayTest2(int[][] oldArray) { … }
Attachments (1)
Change History (5)
comment:1 Changed 11 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 11 years ago by
Changed 11 years ago by
Attachment: | jarray-convert.diff added |
---|
comment:3 Changed 11 years ago by
Patch to test ramifications of not converting multi-dimensional arrays added.
comment:4 Changed 11 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Closing as "wontfix" 'cuz it isn't broken.
Users who want the unadorned, non-translated result from a call info the Java Function Interface should use the JAVA:*-RAW or JSS's #0"*" methods.
Note: See
TracTickets for help on using
tickets.
This behavior certainly seems wrong given that for class:
Compiled with javac, (java:add-to-classpath “~/directory/“), then the following
shows that we are clearly getting a different sort of Lisp object than we pass into the Java FFI for what should be a symmetric reflection.