diff -r 33924ff4af50 -r 27e5857da6af project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ThreadedNetConnection.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ThreadedNetConnection.java Wed Aug 22 01:30:56 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ThreadedNetConnection.java Thu Aug 23 18:28:33 2012 +0200 @@ -35,6 +35,7 @@ import org.hedgewars.hedgeroid.frontlib.Flib; import org.hedgewars.hedgeroid.frontlib.Frontlib; import org.hedgewars.hedgeroid.frontlib.Frontlib.BoolCallback; +import org.hedgewars.hedgeroid.frontlib.Frontlib.ByteArrayPtr; import org.hedgewars.hedgeroid.frontlib.Frontlib.BytesCallback; import org.hedgewars.hedgeroid.frontlib.Frontlib.GameSetupPtr; import org.hedgewars.hedgeroid.frontlib.Frontlib.IntStrCallback; @@ -73,7 +74,6 @@ import android.util.Log; import android.util.Pair; -import com.sun.jna.Memory; import com.sun.jna.Pointer; /** @@ -128,7 +128,7 @@ return; } - //FLIB.flib_netconn_onAdminAccess(conn, adminAccessCb, null) + // FLIB.flib_netconn_onAdminAccess(conn, adminAccessCb, null) FLIB.flib_netconn_onSchemeChanged(conn, cfgSchemeCb, null); FLIB.flib_netconn_onChat(conn, chatCb, null); FLIB.flib_netconn_onConnected(conn, connectedCb, null); @@ -331,8 +331,8 @@ }; private final BytesCallback engineMessageCb = new BytesCallback() { - public void callback(Pointer context, Pointer buffer, NativeSizeT size) { - sendFromNet(MSG_ENGINE_MESSAGE, buffer.getByteArray(0, size.intValue())); + public void callback(Pointer context, ByteArrayPtr buffer, NativeSizeT size) { + sendFromNet(MSG_ENGINE_MESSAGE, buffer.deref(size.intValue())); } }; @@ -512,9 +512,8 @@ } case MSG_SEND_ENGINE_MESSAGE: { byte[] message = (byte[])msg.obj; - Memory mem = new Memory(message.length); - mem.write(0, message, 0, message.length); - FLIB.flib_netconn_send_engineMessage(conn, mem, NativeSizeT.valueOf(message.length)); + ByteArrayPtr ptr = ByteArrayPtr.createJavaOwned(message); + FLIB.flib_netconn_send_engineMessage(conn, ptr, NativeSizeT.valueOf(message.length)); break; } case MSG_SEND_ROUND_FINISHED: { @@ -563,9 +562,8 @@ } case MSG_SEND_MAP_DRAWDATA: { byte[] message = (byte[])msg.obj; - Memory mem = new Memory(message.length); - mem.write(0, message, 0, message.length); - FLIB.flib_netconn_send_mapDrawdata(conn, mem, NativeSizeT.valueOf(message.length)); + ByteArrayPtr ptr = ByteArrayPtr.createJavaOwned(message); + FLIB.flib_netconn_send_mapDrawdata(conn, ptr, NativeSizeT.valueOf(message.length)); break; } case MSG_SEND_GAMESTYLE: {