summaryrefslogtreecommitdiffstats
path: root/libs/ui/Surface.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-04-16 20:30:22 -0700
committerMathias Agopian <mathias@google.com>2009-04-16 20:30:22 -0700
commit69d62097e8195c947de7e4cdc4a491181aa56e61 (patch)
tree9711d12c764f5ff8bfac6fb285b41ea6c4314a8e /libs/ui/Surface.cpp
parent17f638b39f2e8b610ecfa1290e5bc42ab7700c98 (diff)
downloadframeworks_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.cpp15
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());