Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e014f133 authored by Ytai Ben-tsvi's avatar Ytai Ben-tsvi Committed by Automerger Merge Worker
Browse files

Merge "Proper duping / closing of FileDescriptors" into sc-dev am: cd776827

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14686828

Change-Id: I9633dda4a42a394051497050c09cfe8193df9574
parents 20a30b38 cd776827
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -76,8 +76,7 @@ public final class HidlMemoryUtil {
            return new HidlMemory("ashmem", 0, null);
        }

        try {
            SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length);
        try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length)) {
            ByteBuffer buffer = shmem.mapReadWrite();
            buffer.put(input);
            shmem.unmap(buffer);
@@ -119,8 +118,7 @@ public final class HidlMemoryUtil {
            return new HidlMemory("ashmem", 0, null);
        }

        try {
            SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size());
        try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size())) {
            ByteBuffer buffer = shmem.mapReadWrite();
            for (Byte b : input) {
                buffer.put(b);
@@ -214,8 +212,12 @@ public final class HidlMemoryUtil {
        if (fd == null) {
            return new HidlMemory("ashmem", 0, null);
        }
        NativeHandle handle = new NativeHandle(fd, true);
        try {
            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) {