project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/GameConnection.java
changeset 7588 27e5857da6af
parent 7584 7831c84cc644
child 10017 de822cd3df3a
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/GameConnection.java	Wed Aug 22 01:30:56 2012 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/GameConnection.java	Thu Aug 23 18:28:33 2012 +0200
@@ -24,6 +24,7 @@
 import org.hedgewars.hedgeroid.Datastructures.GameConfig;
 import org.hedgewars.hedgeroid.frontlib.Flib;
 import org.hedgewars.hedgeroid.frontlib.Frontlib;
+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.GameconnPtr;
@@ -41,7 +42,6 @@
 import android.os.Looper;
 import android.util.Log;
 
-import com.sun.jna.Memory;
 import com.sun.jna.Pointer;
 
 /**
@@ -172,8 +172,8 @@
 	
 	// runs on the IPCThread
 	private final BytesCallback engineMessageCb = new BytesCallback() {
-		public void callback(Pointer context, Pointer buffer, NativeSizeT size) {
-			netplay.sendEngineMessage(buffer.getByteArray(0, size.intValue()));
+		public void callback(Pointer context, ByteArrayPtr buffer, NativeSizeT size) {
+			netplay.sendEngineMessage(buffer.deref(size.intValue()));
 		}
 	};
 	
@@ -205,9 +205,8 @@
 		public void onEngineMessage(final byte[] em) {
 			handler.post(new Runnable() {
 				public void run() {
-					Memory mem = new Memory(em.length);
-					mem.write(0, em, 0, em.length);
-					Flib.INSTANCE.flib_gameconn_send_enginemsg(conn, mem, NativeSizeT.valueOf(em.length));
+					ByteArrayPtr ptr = ByteArrayPtr.createJavaOwned(em);
+					Flib.INSTANCE.flib_gameconn_send_enginemsg(conn, ptr, NativeSizeT.valueOf(em.length));
 				}
 			});
 		}