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

Commit f005f5ed authored by Eino-Ville Talvala's avatar Eino-Ville Talvala
Browse files

android.view.Surface: Add parceling warning

Surface is parcelled partly in java, partly in native, and any fields
added in java have to be accounted for in the native side as well.

Add a warning to avoid issues in the future

Bug: 31162160
Change-Id: I48ca1bc3eea29f1ac3d3065f6defb6ed2be4052a
parent 199d4902
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -459,6 +459,8 @@ public class Surface implements Parcelable {
            // create a new native Surface and return it after reducing
            // create a new native Surface and return it after reducing
            // the reference count on mNativeObject.  Either way, it is
            // the reference count on mNativeObject.  Either way, it is
            // not necessary to call nativeRelease() here.
            // not necessary to call nativeRelease() here.
            // NOTE: This must be kept synchronized with the native parceling code
            // in frameworks/native/libs/Surface.cpp
            mName = source.readString();
            mName = source.readString();
            mIsSingleBuffered = source.readInt() != 0;
            mIsSingleBuffered = source.readInt() != 0;
            setNativeObjectLocked(nativeReadFromParcel(mNativeObject, source));
            setNativeObjectLocked(nativeReadFromParcel(mNativeObject, source));
@@ -471,6 +473,8 @@ public class Surface implements Parcelable {
            throw new IllegalArgumentException("dest must not be null");
            throw new IllegalArgumentException("dest must not be null");
        }
        }
        synchronized (mLock) {
        synchronized (mLock) {
            // NOTE: This must be kept synchronized with the native parceling code
            // in frameworks/native/libs/Surface.cpp
            dest.writeString(mName);
            dest.writeString(mName);
            dest.writeInt(mIsSingleBuffered ? 1 : 0);
            dest.writeInt(mIsSingleBuffered ? 1 : 0);
            nativeWriteToParcel(mNativeObject, dest);
            nativeWriteToParcel(mNativeObject, dest);