Loading core/java/android/util/MemoryIntArray.java +24 −26 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { private final int mOwnerPid; private final boolean mClientWritable; private final long mMemoryAddr; private ParcelFileDescriptor mFd; private int mFd; /** * Creates a new instance. Loading @@ -71,22 +71,23 @@ public final class MemoryIntArray implements Parcelable, Closeable { mOwnerPid = Process.myPid(); mClientWritable = clientWritable; final String name = UUID.randomUUID().toString(); mFd = ParcelFileDescriptor.fromFd(nativeCreate(name, size)); mMemoryAddr = nativeOpen(mFd.getFd(), true, clientWritable); mFd = nativeCreate(name, size); mMemoryAddr = nativeOpen(mFd, true, clientWritable); } private MemoryIntArray(Parcel parcel) throws IOException { mOwnerPid = parcel.readInt(); mClientWritable = (parcel.readInt() == 1); mFd = parcel.readParcelable(null); if (mFd == null) { ParcelFileDescriptor pfd = parcel.readParcelable(null); if (pfd == null) { throw new IOException("No backing file descriptor"); } mFd = pfd.detachFd(); final long memoryAddress = parcel.readLong(); if (isOwner()) { mMemoryAddr = memoryAddress; } else { mMemoryAddr = nativeOpen(mFd.getFd(), false, mClientWritable); mMemoryAddr = nativeOpen(mFd, false, mClientWritable); } } Loading @@ -108,7 +109,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { public int get(int index) throws IOException { enforceNotClosed(); enforceValidIndex(index); return nativeGet(mFd.getFd(), mMemoryAddr, index, isOwner()); return nativeGet(mFd, mMemoryAddr, index, isOwner()); } /** Loading @@ -124,7 +125,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { enforceNotClosed(); enforceWritable(); enforceValidIndex(index); nativeSet(mFd.getFd(), mMemoryAddr, index, value, isOwner()); nativeSet(mFd, mMemoryAddr, index, value, isOwner()); } /** Loading @@ -134,7 +135,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { */ public int size() throws IOException { enforceNotClosed(); return nativeSize(mFd.getFd()); return nativeSize(mFd); } /** Loading @@ -145,9 +146,8 @@ public final class MemoryIntArray implements Parcelable, Closeable { @Override public void close() throws IOException { if (!isClosed()) { ParcelFileDescriptor pfd = mFd; mFd = null; nativeClose(pfd.getFd(), mMemoryAddr, isOwner()); nativeClose(mFd, mMemoryAddr, isOwner()); mFd = -1; } } Loading @@ -155,7 +155,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { * @return Whether this array is closed and shouldn't be used. */ public boolean isClosed() { return mFd == null; return mFd == -1; } @Override Loading @@ -171,10 +171,15 @@ public final class MemoryIntArray implements Parcelable, Closeable { @Override public void writeToParcel(Parcel parcel, int flags) { ParcelFileDescriptor pfd = ParcelFileDescriptor.adoptFd(mFd); try { parcel.writeInt(mOwnerPid); parcel.writeInt(mClientWritable ? 1 : 0); parcel.writeParcelable(mFd, 0); parcel.writeParcelable(pfd, flags & ~Parcelable.PARCELABLE_WRITE_RETURN_VALUE); parcel.writeLong(mMemoryAddr); } finally { pfd.detachFd(); } } @Override Loading @@ -189,19 +194,12 @@ public final class MemoryIntArray implements Parcelable, Closeable { return false; } MemoryIntArray other = (MemoryIntArray) obj; if (mFd == null) { if (other.mFd != null) { return false; } } else if (mFd.getFd() != other.mFd.getFd()) { return false; } return true; return mFd == other.mFd; } @Override public int hashCode() { return mFd != null ? mFd.hashCode() : 1; return mFd; } private boolean isOwner() { Loading core/jni/android_util_MemoryIntArray.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -160,16 +160,8 @@ static jint android_util_MemoryIntArray_size(JNIEnv* env, jobject clazz, jint fd return -1; } // Use ASHMEM_GET_SIZE to find out if the fd refers to an ashmem region. // ASHMEM_GET_SIZE should succeed for all ashmem regions, and the kernel // should return ENOTTY for all other valid file descriptors int ashmemSize = ashmem_get_size_region(fd); if (ashmemSize < 0) { if (errno == ENOTTY) { // ENOTTY means that the ioctl does not apply to this object, // i.e., it is not an ashmem region. return -1; } // Some other error, throw exception jniThrowIOException(env, errno); return -1; Loading Loading
core/java/android/util/MemoryIntArray.java +24 −26 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { private final int mOwnerPid; private final boolean mClientWritable; private final long mMemoryAddr; private ParcelFileDescriptor mFd; private int mFd; /** * Creates a new instance. Loading @@ -71,22 +71,23 @@ public final class MemoryIntArray implements Parcelable, Closeable { mOwnerPid = Process.myPid(); mClientWritable = clientWritable; final String name = UUID.randomUUID().toString(); mFd = ParcelFileDescriptor.fromFd(nativeCreate(name, size)); mMemoryAddr = nativeOpen(mFd.getFd(), true, clientWritable); mFd = nativeCreate(name, size); mMemoryAddr = nativeOpen(mFd, true, clientWritable); } private MemoryIntArray(Parcel parcel) throws IOException { mOwnerPid = parcel.readInt(); mClientWritable = (parcel.readInt() == 1); mFd = parcel.readParcelable(null); if (mFd == null) { ParcelFileDescriptor pfd = parcel.readParcelable(null); if (pfd == null) { throw new IOException("No backing file descriptor"); } mFd = pfd.detachFd(); final long memoryAddress = parcel.readLong(); if (isOwner()) { mMemoryAddr = memoryAddress; } else { mMemoryAddr = nativeOpen(mFd.getFd(), false, mClientWritable); mMemoryAddr = nativeOpen(mFd, false, mClientWritable); } } Loading @@ -108,7 +109,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { public int get(int index) throws IOException { enforceNotClosed(); enforceValidIndex(index); return nativeGet(mFd.getFd(), mMemoryAddr, index, isOwner()); return nativeGet(mFd, mMemoryAddr, index, isOwner()); } /** Loading @@ -124,7 +125,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { enforceNotClosed(); enforceWritable(); enforceValidIndex(index); nativeSet(mFd.getFd(), mMemoryAddr, index, value, isOwner()); nativeSet(mFd, mMemoryAddr, index, value, isOwner()); } /** Loading @@ -134,7 +135,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { */ public int size() throws IOException { enforceNotClosed(); return nativeSize(mFd.getFd()); return nativeSize(mFd); } /** Loading @@ -145,9 +146,8 @@ public final class MemoryIntArray implements Parcelable, Closeable { @Override public void close() throws IOException { if (!isClosed()) { ParcelFileDescriptor pfd = mFd; mFd = null; nativeClose(pfd.getFd(), mMemoryAddr, isOwner()); nativeClose(mFd, mMemoryAddr, isOwner()); mFd = -1; } } Loading @@ -155,7 +155,7 @@ public final class MemoryIntArray implements Parcelable, Closeable { * @return Whether this array is closed and shouldn't be used. */ public boolean isClosed() { return mFd == null; return mFd == -1; } @Override Loading @@ -171,10 +171,15 @@ public final class MemoryIntArray implements Parcelable, Closeable { @Override public void writeToParcel(Parcel parcel, int flags) { ParcelFileDescriptor pfd = ParcelFileDescriptor.adoptFd(mFd); try { parcel.writeInt(mOwnerPid); parcel.writeInt(mClientWritable ? 1 : 0); parcel.writeParcelable(mFd, 0); parcel.writeParcelable(pfd, flags & ~Parcelable.PARCELABLE_WRITE_RETURN_VALUE); parcel.writeLong(mMemoryAddr); } finally { pfd.detachFd(); } } @Override Loading @@ -189,19 +194,12 @@ public final class MemoryIntArray implements Parcelable, Closeable { return false; } MemoryIntArray other = (MemoryIntArray) obj; if (mFd == null) { if (other.mFd != null) { return false; } } else if (mFd.getFd() != other.mFd.getFd()) { return false; } return true; return mFd == other.mFd; } @Override public int hashCode() { return mFd != null ? mFd.hashCode() : 1; return mFd; } private boolean isOwner() { Loading
core/jni/android_util_MemoryIntArray.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -160,16 +160,8 @@ static jint android_util_MemoryIntArray_size(JNIEnv* env, jobject clazz, jint fd return -1; } // Use ASHMEM_GET_SIZE to find out if the fd refers to an ashmem region. // ASHMEM_GET_SIZE should succeed for all ashmem regions, and the kernel // should return ENOTTY for all other valid file descriptors int ashmemSize = ashmem_get_size_region(fd); if (ashmemSize < 0) { if (errno == ENOTTY) { // ENOTTY means that the ioctl does not apply to this object, // i.e., it is not an ashmem region. return -1; } // Some other error, throw exception jniThrowIOException(env, errno); return -1; Loading