Merge "Emulator cleanup in ClipboardService.java"
This commit is contained in:
@@ -65,6 +65,7 @@ import com.android.server.wm.WindowManagerInternal;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.RandomAccessFile;
|
import java.io.RandomAccessFile;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -80,21 +81,20 @@ class HostClipboardMonitor implements Runnable {
|
|||||||
private static final String PIPE_NAME = "pipe:clipboard";
|
private static final String PIPE_NAME = "pipe:clipboard";
|
||||||
private static final String PIPE_DEVICE = "/dev/qemu_pipe";
|
private static final String PIPE_DEVICE = "/dev/qemu_pipe";
|
||||||
|
|
||||||
|
private static byte[] createOpenHandshake() {
|
||||||
|
// String.getBytes doesn't include the null terminator,
|
||||||
|
// but the QEMU pipe device requires the pipe service name
|
||||||
|
// to be null-terminated.
|
||||||
|
|
||||||
|
final byte[] bits = Arrays.copyOf(PIPE_NAME.getBytes(), PIPE_NAME.length() + 1);
|
||||||
|
bits[PIPE_NAME.length()] = 0;
|
||||||
|
return bits;
|
||||||
|
}
|
||||||
|
|
||||||
private void openPipe() {
|
private void openPipe() {
|
||||||
try {
|
try {
|
||||||
// String.getBytes doesn't include the null terminator,
|
|
||||||
// but the QEMU pipe device requires the pipe service name
|
|
||||||
// to be null-terminated.
|
|
||||||
byte[] b = new byte[PIPE_NAME.length() + 1];
|
|
||||||
b[PIPE_NAME.length()] = 0;
|
|
||||||
System.arraycopy(
|
|
||||||
PIPE_NAME.getBytes(),
|
|
||||||
0,
|
|
||||||
b,
|
|
||||||
0,
|
|
||||||
PIPE_NAME.length());
|
|
||||||
mPipe = new RandomAccessFile(PIPE_DEVICE, "rw");
|
mPipe = new RandomAccessFile(PIPE_DEVICE, "rw");
|
||||||
mPipe.write(b);
|
mPipe.write(createOpenHandshake());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
try {
|
try {
|
||||||
if (mPipe != null) mPipe.close();
|
if (mPipe != null) mPipe.close();
|
||||||
|
|||||||
Reference in New Issue
Block a user