Sync to avoid concurrent access issues

This commit is contained in:
shagr4th 2016-12-19 22:18:07 +01:00
parent 5cb541b5e4
commit 79d4d7bfcf

View file

@ -1028,6 +1028,7 @@ public class HPView extends SurfaceView implements SurfaceHolder.Callback, Runna
public void key(int code, boolean down, int pointerID) { public void key(int code, boolean down, int pointerID) {
if (code < MAX_TOUCHES) { if (code < MAX_TOUCHES) {
synchronized(queuedCodes) {
if (down) { if (down) {
Integer cI = code + 1; Integer cI = code + 1;
queuedCodes.add(cI); queuedCodes.add(cI);
@ -1039,11 +1040,13 @@ public class HPView extends SurfaceView implements SurfaceHolder.Callback, Runna
queuedCodes.add(cI); queuedCodes.add(cI);
touches[code] = 0; touches[code] = 0;
} }
}
x48.flipScreen(); x48.flipScreen();
} }
} }
public int waitEvent() { public int waitEvent() {
synchronized(queuedCodes) {
if (queuedCodes.size() == 0) { if (queuedCodes.size() == 0) {
return 0; return 0;
} else { } else {
@ -1051,6 +1054,7 @@ public class HPView extends SurfaceView implements SurfaceHolder.Callback, Runna
return c; return c;
} }
} }
}
protected int width; protected int width;
protected int height; protected int height;