OSDN Git Service

libbinder: Return UNEXPECTED_NULL when appropriate
authorChristopher Wiley <wiley@google.com>
Tue, 10 Nov 2015 17:44:30 +0000 (09:44 -0800)
committerChristopher Wiley <wiley@google.com>
Wed, 11 Nov 2015 16:59:48 +0000 (08:59 -0800)
commit4db672ddccb02b2bd70ddb4812c00a5060174c93
treeb1234744464b98f3d35c96b4052df83859dbbc2f
parentfd6843236fe9094fc8868f1a58e6ba4364a485a7
libbinder: Return UNEXPECTED_NULL when appropriate

Return a meaningful and consistent error code when libbinder encounters
a null reference that it didn't expect.  This allows us to detect these
situations and cause a corresponding NullPointerException to be thrown
on the remote callsite.

While here, consolidate places we read vector<T> from a parcel into a
single templated version.  This dramatically reduces code duplication.

Bug: 25617251
Test: Integration tests asserting that vectors serialize correctly
      passes.  Integration test asserting that we throw
      NullPointerException on seeing a null reference also passes.

Change-Id: Ia59c264884ec89539c1b99cd7bd28ac201b5b7ac
libs/binder/Parcel.cpp