diff options
author | Mathias Agopian <mathias@google.com> | 2010-02-17 20:22:26 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-02-17 20:26:47 -0800 |
commit | b6121422ef641dc7317d1c3bf1d38b7d73922250 (patch) | |
tree | 80dfecc782b2a9b5e3dfdec96703ffc8a1b6b9bd /libs/surfaceflinger_client/LayerState.cpp | |
parent | 3c8f46c8d82d158aef9d4e757d744fa11fb95ece (diff) | |
download | frameworks_native-b6121422ef641dc7317d1c3bf1d38b7d73922250.zip frameworks_native-b6121422ef641dc7317d1c3bf1d38b7d73922250.tar.gz frameworks_native-b6121422ef641dc7317d1c3bf1d38b7d73922250.tar.bz2 |
Remove a dependency of Region (libui) on Parcel (libbinder).
Diffstat (limited to 'libs/surfaceflinger_client/LayerState.cpp')
-rw-r--r-- | libs/surfaceflinger_client/LayerState.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/libs/surfaceflinger_client/LayerState.cpp b/libs/surfaceflinger_client/LayerState.cpp index 114a9e9..01c4c7e 100644 --- a/libs/surfaceflinger_client/LayerState.cpp +++ b/libs/surfaceflinger_client/LayerState.cpp @@ -22,17 +22,37 @@ namespace android { status_t layer_state_t::write(Parcel& output) const { + status_t err; + + size_t len = transparentRegion.write(NULL, 0); + err = output.writeInt32(len); + if (err < NO_ERROR) return err; + + void* buf = output.writeInplace(len); + if (buf == NULL) return NO_MEMORY; + + err = transparentRegion.write(buf, len); + if (err < NO_ERROR) return err; + + // NOTE: regions are at the end of the structure size_t size = sizeof(layer_state_t); - transparentRegion.write(output); size -= sizeof(transparentRegion); - output.write(this, size); - return NO_ERROR; + err = output.write(this, size); + return err; } status_t layer_state_t::read(const Parcel& input) { + status_t err; + size_t len = input.readInt32(); + void const* buf = input.readInplace(len); + if (buf == NULL) return NO_MEMORY; + + err = transparentRegion.read(buf); + if (err < NO_ERROR) return err; + + // NOTE: regions are at the end of the structure size_t size = sizeof(layer_state_t); - transparentRegion.read(input); size -= sizeof(transparentRegion); input.read(this, size); return NO_ERROR; |