« Return to Thread: java gcj patch

java gcj patch

by Matthew O'Gorman :: Rate this Message:

Reply to Author | View in Thread

Attached is the needed changes to make jinterface compile with gcj.
it still has some warnings but this resolves errors.  The one thing im
unsure of is in some cases you pass String(int[] var, start, end)
where int has never been a valid option for a string according to
manual.  i changed that to char[] but i figure it might cause a
problem.

--
Matthew O'Gorman
xim: mog@...
email: mog@...
site: http://blog.rldn.net
+----------------------------------+
  If you want divine justice, die.
                  -- Nick Seldon
+----------------------------------+


--- otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBitstr.java 2009-04-16 04:26:20.000000000 -0500
+++ otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangBitstr.java 2009-06-09 17:18:18.815065841 -0500
@@ -278,7 +278,7 @@
     @Override
     public Object clone() {
  final OtpErlangBitstr that = (OtpErlangBitstr) super.clone();
- that.bin = bin.clone();
+ that.bin = (byte[]) bin.clone();
  that.pad_bits = pad_bits;
  return that;
     }
Binary files otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/.OtpErlangBitstr.java.swp and otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/.OtpErlangBitstr.java.swp differ
diff -ruN otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangList.java otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangList.java
--- otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangList.java 2009-04-16 04:26:08.000000000 -0500
+++ otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangList.java 2009-06-09 17:15:46.882543270 -0500
@@ -392,14 +392,14 @@
  if (! isProper()) {
     throw new OtpErlangException("Non-proper list: " + this);
  }
- final int[] values = new int[arity()];
+ final char[] values = new char[arity()];
  for (int i = 0; i < values.length; ++i) {
     final OtpErlangObject o = elementAt(i);
     if (! (o instanceof OtpErlangLong)) {
  throw new OtpErlangException("Non-integer term: " + o);
     }
     final OtpErlangLong l = (OtpErlangLong) o;
-    values[i] = l.intValue();
+    values[i] = (char) l.intValue();
  }
  return new String(values, 0, values.length);
     }
diff -ruN otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangRef.java otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangRef.java
--- otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangRef.java 2009-04-16 04:26:09.000000000 -0500
+++ otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangRef.java 2009-06-09 17:13:57.724260934 -0500
@@ -258,7 +258,7 @@
     @Override
     public Object clone() {
  final OtpErlangRef newRef = (OtpErlangRef) super.clone();
- newRef.ids = ids.clone();
+ newRef.ids =(int[]) ids.clone();
  return newRef;
     }
 }
diff -ruN otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangTuple.java otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangTuple.java
--- otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangTuple.java 2009-04-16 04:26:10.000000000 -0500
+++ otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpErlangTuple.java 2009-06-09 17:17:11.938540258 -0500
@@ -255,7 +255,7 @@
     @Override
     public Object clone() {
  final OtpErlangTuple newTuple = (OtpErlangTuple) super.clone();
- newTuple.elems = elems.clone();
+ newTuple.elems = (OtpErlangObject[]) elems.clone();
  return newTuple;
     }
 }
diff -ruN otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpInputStream.java otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpInputStream.java
--- otp_src_R13B/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpInputStream.java 2009-04-16 04:26:10.000000000 -0500
+++ otp_src_R13B_modified/lib/jinterface/java_src/com/ericsson/otp/erlang/OtpInputStream.java 2009-06-09 17:11:43.399576646 -0500
@@ -1063,7 +1063,7 @@
  int tag;
  int len;
  byte[] strbuf;
- int[] intbuf;
+ char[] intbuf;
  tag = read1skip_version();
  switch (tag) {
  case OtpExternal.stringTag:
@@ -1075,9 +1075,9 @@
     return "";
  case OtpExternal.listTag: // List when unicode +
     len = read4BE();
-    intbuf = new int[len];
+    intbuf = new char[len];
     for (int i = 0; i < len; i++) {
- intbuf[i] = read_int();
+ intbuf[i] = (char) read_int();
  if (! OtpErlangString.isValidCodePoint(intbuf[i])) {
     throw new OtpErlangDecodeException
  ("Invalid CodePoint: " + intbuf[i]);




signature.asc (852 bytes) Download Attachment

 « Return to Thread: java gcj patch