diff options
| author | Mathias Agopian <mathias@google.com> | 2009-04-16 20:30:22 -0700 |
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2009-04-16 20:30:22 -0700 |
| commit | 69d62097e8195c947de7e4cdc4a491181aa56e61 (patch) | |
| tree | 9711d12c764f5ff8bfac6fb285b41ea6c4314a8e /libs/ui/Surface.cpp | |
| parent | 17f638b39f2e8b610ecfa1290e5bc42ab7700c98 (diff) | |
| download | frameworks_base-69d62097e8195c947de7e4cdc4a491181aa56e61.zip frameworks_base-69d62097e8195c947de7e4cdc4a491181aa56e61.tar.gz frameworks_base-69d62097e8195c947de7e4cdc4a491181aa56e61.tar.bz2 | |
cleanup, remove unused fields. Also make sure that we don't systematically allocate a Surface in Surface.java if only a SurfaceControl is needed (Common case).
Diffstat (limited to 'libs/ui/Surface.cpp')
| -rw-r--r-- | libs/ui/Surface.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp index cf1b76c..47880f5 100644 --- a/libs/ui/Surface.cpp +++ b/libs/ui/Surface.cpp @@ -152,13 +152,13 @@ SurfaceControl::SurfaceControl( const sp<SurfaceComposerClient>& client, const sp<ISurface>& surface, const ISurfaceFlingerClient::surface_data_t& data, - uint32_t w, uint32_t h, PixelFormat format, uint32_t flags, - bool owner) + uint32_t w, uint32_t h, PixelFormat format, uint32_t flags) : mClient(client), mSurface(surface), mToken(data.token), mIdentity(data.identity), - mFormat(format), mFlags(flags), mOwner(owner) + mFormat(format), mFlags(flags) { } + SurfaceControl::~SurfaceControl() { destroy(); @@ -166,10 +166,7 @@ SurfaceControl::~SurfaceControl() void SurfaceControl::destroy() { - // Destroy the surface in SurfaceFlinger if we were the owner - // (in any case, a client won't be able to, because it won't have the - // right permission). - if (mOwner && mToken>=0 && mClient!=0) { + if (isValid()) { mClient->destroySurface(mToken); } @@ -351,14 +348,12 @@ sp<Surface> SurfaceControl::getSurface() const Surface::Surface(const sp<SurfaceControl>& surface) : mClient(surface->mClient), mSurface(surface->mSurface), mToken(surface->mToken), mIdentity(surface->mIdentity), - mFormat(surface->mFormat), mFlags(surface->mFlags), - mOwner(surface->mOwner) + mFormat(surface->mFormat), mFlags(surface->mFlags) { init(); } Surface::Surface(const Parcel& parcel) - : mOwner(false) { sp<IBinder> clientBinder = parcel.readStrongBinder(); mSurface = interface_cast<ISurface>(parcel.readStrongBinder()); |
