diff --git a/core/java/android/os/SharedMemory.java b/core/java/android/os/SharedMemory.java index 0540e3611b52c..57a88012a31a0 100644 --- a/core/java/android/os/SharedMemory.java +++ b/core/java/android/os/SharedMemory.java @@ -62,7 +62,7 @@ public final class SharedMemory implements Parcelable, Closeable { mMemoryRegistration = new MemoryRegistration(mSize); mCleaner = Cleaner.create(mFileDescriptor, - new Closer(mFileDescriptor.getInt$(), mMemoryRegistration)); + new Closer(mFileDescriptor, mMemoryRegistration)); } /** @@ -259,9 +259,6 @@ public final class SharedMemory implements Parcelable, Closeable { mCleaner.clean(); mCleaner = null; } - - // Cleaner.clean doesn't clear the value of the file descriptor. - mFileDescriptor.setInt$(-1); } @Override @@ -293,10 +290,10 @@ public final class SharedMemory implements Parcelable, Closeable { * Cleaner that closes the FD */ private static final class Closer implements Runnable { - private int mFd; + private FileDescriptor mFd; private MemoryRegistration mMemoryReference; - private Closer(int fd, MemoryRegistration memoryReference) { + private Closer(FileDescriptor fd, MemoryRegistration memoryReference) { mFd = fd; mMemoryReference = memoryReference; } @@ -304,9 +301,7 @@ public final class SharedMemory implements Parcelable, Closeable { @Override public void run() { try { - FileDescriptor fd = new FileDescriptor(); - fd.setInt$(mFd); - Os.close(fd); + Os.close(mFd); } catch (ErrnoException e) { /* swallow error */ } mMemoryReference.release(); mMemoryReference = null;