project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ThreadedNetConnection.java
changeset 7588 27e5857da6af
parent 7584 7831c84cc644
child 7691 55c0a856ecd0
--- 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: {