Merge "Proper duping / closing of FileDescriptors" into sc-dev am: cd77682736
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14686828 Change-Id: I9633dda4a42a394051497050c09cfe8193df9574
This commit is contained in:
@@ -76,8 +76,7 @@ public final class HidlMemoryUtil {
|
|||||||
return new HidlMemory("ashmem", 0, null);
|
return new HidlMemory("ashmem", 0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length)) {
|
||||||
SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length);
|
|
||||||
ByteBuffer buffer = shmem.mapReadWrite();
|
ByteBuffer buffer = shmem.mapReadWrite();
|
||||||
buffer.put(input);
|
buffer.put(input);
|
||||||
shmem.unmap(buffer);
|
shmem.unmap(buffer);
|
||||||
@@ -119,8 +118,7 @@ public final class HidlMemoryUtil {
|
|||||||
return new HidlMemory("ashmem", 0, null);
|
return new HidlMemory("ashmem", 0, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size())) {
|
||||||
SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size());
|
|
||||||
ByteBuffer buffer = shmem.mapReadWrite();
|
ByteBuffer buffer = shmem.mapReadWrite();
|
||||||
for (Byte b : input) {
|
for (Byte b : input) {
|
||||||
buffer.put(b);
|
buffer.put(b);
|
||||||
@@ -214,8 +212,12 @@ public final class HidlMemoryUtil {
|
|||||||
if (fd == null) {
|
if (fd == null) {
|
||||||
return new HidlMemory("ashmem", 0, null);
|
return new HidlMemory("ashmem", 0, null);
|
||||||
}
|
}
|
||||||
NativeHandle handle = new NativeHandle(fd, true);
|
try {
|
||||||
return new HidlMemory("ashmem", size, handle);
|
NativeHandle handle = new NativeHandle(Os.dup(fd), true);
|
||||||
|
return new HidlMemory("ashmem", size, handle);
|
||||||
|
} catch (ErrnoException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ByteBuffer getBuffer(@NonNull HidlMemory mem) {
|
private static ByteBuffer getBuffer(@NonNull HidlMemory mem) {
|
||||||
|
|||||||
Reference in New Issue
Block a user