@@ -58,13 +58,16 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
5858 Parcel data, reply;
5959 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
6060 data.writeInt32 (bufferIdx);
61- remote ()->transact (REQUEST_BUFFER, data, &reply);
61+ status_t result =remote ()->transact (REQUEST_BUFFER, data, &reply);
62+ if (result != NO_ERROR) {
63+ return result;
64+ }
6265 bool nonNull = reply.readInt32 ();
6366 if (nonNull) {
6467 *buf = new GraphicBuffer ();
6568 reply.read (**buf);
6669 }
67- status_t result = reply.readInt32 ();
70+ result = reply.readInt32 ();
6871 return result;
6972 }
7073
@@ -73,9 +76,12 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
7376 Parcel data, reply;
7477 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
7578 data.writeInt32 (bufferCount);
76- remote ()->transact (SET_BUFFER_COUNT, data, &reply);
77- status_t err = reply.readInt32 ();
78- return err;
79+ status_t result =remote ()->transact (SET_BUFFER_COUNT, data, &reply);
80+ if (result != NO_ERROR) {
81+ return result;
82+ }
83+ result = reply.readInt32 ();
84+ return result;
7985 }
8086
8187 virtual status_t dequeueBuffer (int *buf, uint32_t w, uint32_t h,
@@ -86,9 +92,12 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
8692 data.writeInt32 (h);
8793 data.writeInt32 (format);
8894 data.writeInt32 (usage);
89- remote ()->transact (DEQUEUE_BUFFER, data, &reply);
95+ status_t result = remote ()->transact (DEQUEUE_BUFFER, data, &reply);
96+ if (result != NO_ERROR) {
97+ return result;
98+ }
9099 *buf = reply.readInt32 ();
91- int result = reply.readInt32 ();
100+ result = reply.readInt32 ();
92101 return result;
93102 }
94103
@@ -98,11 +107,14 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
98107 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
99108 data.writeInt32 (buf);
100109 data.writeInt64 (timestamp);
101- remote ()->transact (QUEUE_BUFFER, data, &reply);
110+ status_t result = remote ()->transact (QUEUE_BUFFER, data, &reply);
111+ if (result != NO_ERROR) {
112+ return result;
113+ }
102114 *outWidth = reply.readInt32 ();
103115 *outHeight = reply.readInt32 ();
104116 *outTransform = reply.readInt32 ();
105- status_t result = reply.readInt32 ();
117+ result = reply.readInt32 ();
106118 return result;
107119 }
108120
@@ -120,45 +132,60 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
120132 data.writeFloat (reg.top );
121133 data.writeFloat (reg.right );
122134 data.writeFloat (reg.bottom );
123- remote ()->transact (SET_CROP, data, &reply);
124- status_t result = reply.readInt32 ();
135+ status_t result = remote ()->transact (SET_CROP, data, &reply);
136+ if (result != NO_ERROR) {
137+ return result;
138+ }
139+ result = reply.readInt32 ();
125140 return result;
126141 }
127142
128143 virtual status_t setTransform (uint32_t transform) {
129144 Parcel data, reply;
130145 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
131146 data.writeInt32 (transform);
132- remote ()->transact (SET_TRANSFORM, data, &reply);
133- status_t result = reply.readInt32 ();
147+ status_t result = remote ()->transact (SET_TRANSFORM, data, &reply);
148+ if (result != NO_ERROR) {
149+ return result;
150+ }
151+ result = reply.readInt32 ();
134152 return result;
135153 }
136154
137155 virtual status_t setScalingMode (int mode) {
138156 Parcel data, reply;
139157 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
140158 data.writeInt32 (mode);
141- remote ()->transact (SET_SCALING_MODE, data, &reply);
142- status_t result = reply.readInt32 ();
159+ status_t result = remote ()->transact (SET_SCALING_MODE, data, &reply);
160+ if (result != NO_ERROR) {
161+ return result;
162+ }
163+ result = reply.readInt32 ();
143164 return result;
144165 }
145166
146167 virtual int query (int what, int * value) {
147168 Parcel data, reply;
148169 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
149170 data.writeInt32 (what);
150- remote ()->transact (QUERY, data, &reply);
171+ status_t result = remote ()->transact (QUERY, data, &reply);
172+ if (result != NO_ERROR) {
173+ return result;
174+ }
151175 value[0 ] = reply.readInt32 ();
152- status_t result = reply.readInt32 ();
176+ result = reply.readInt32 ();
153177 return result;
154178 }
155179
156180 virtual status_t setSynchronousMode (bool enabled) {
157181 Parcel data, reply;
158182 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
159183 data.writeInt32 (enabled);
160- remote ()->transact (SET_SYNCHRONOUS_MODE, data, &reply);
161- status_t result = reply.readInt32 ();
184+ status_t result = remote ()->transact (SET_SYNCHRONOUS_MODE, data, &reply);
185+ if (result != NO_ERROR) {
186+ return result;
187+ }
188+ result = reply.readInt32 ();
162189 return result;
163190 }
164191
@@ -167,20 +194,26 @@ class BpSurfaceTexture : public BpInterface<ISurfaceTexture>
167194 Parcel data, reply;
168195 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
169196 data.writeInt32 (api);
170- remote ()->transact (CONNECT, data, &reply);
197+ status_t result = remote ()->transact (CONNECT, data, &reply);
198+ if (result != NO_ERROR) {
199+ return result;
200+ }
171201 *outWidth = reply.readInt32 ();
172202 *outHeight = reply.readInt32 ();
173203 *outTransform = reply.readInt32 ();
174- status_t result = reply.readInt32 ();
204+ result = reply.readInt32 ();
175205 return result;
176206 }
177207
178208 virtual status_t disconnect (int api) {
179209 Parcel data, reply;
180210 data.writeInterfaceToken (ISurfaceTexture::getInterfaceDescriptor ());
181211 data.writeInt32 (api);
182- remote ()->transact (DISCONNECT, data, &reply);
183- status_t result = reply.readInt32 ();
212+ status_t result =remote ()->transact (DISCONNECT, data, &reply);
213+ if (result != NO_ERROR) {
214+ return result;
215+ }
216+ result = reply.readInt32 ();
184217 return result;
185218 }
186219};
0 commit comments