diff options
author | Mathias Agopian <mathias@google.com> | 2011-11-17 18:46:09 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-11-17 18:46:09 -0800 |
commit | 90cbbd1f7f510e7c173f706919492a95e91a87e7 (patch) | |
tree | 228bd0b3b540cdbdb52cea0a6c0fdd9bf33563b2 /include/gui | |
parent | 302afb93d4fd908949ac796eda8343f9683e616a (diff) | |
download | frameworks_base-90cbbd1f7f510e7c173f706919492a95e91a87e7.zip frameworks_base-90cbbd1f7f510e7c173f706919492a95e91a87e7.tar.gz frameworks_base-90cbbd1f7f510e7c173f706919492a95e91a87e7.tar.bz2 |
attempt to fix bug 5313580
the working theory here is that a Surface object has become non-promotable
because it lost its last reference; later Surface::readFromParcel is called
the previous surface is found in the cache, but can't be promoted. this causes
a new Surface object to be created which will promptly try to connect to the
CPU_API -- this in turn will fail because the previous (now dead) surface is
still connected.
To fix this, we make sure to disconnect from the SurfaceTexture when
Surface[TextureClient] is destroyed.
Change-Id: I422234868a05d7b7d283e9d5a85f7ab79e65d8a9
Diffstat (limited to 'include/gui')
-rw-r--r-- | include/gui/SurfaceTextureClient.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/gui/SurfaceTextureClient.h b/include/gui/SurfaceTextureClient.h index 57f9e15..971a1b8 100644 --- a/include/gui/SurfaceTextureClient.h +++ b/include/gui/SurfaceTextureClient.h @@ -40,6 +40,7 @@ public: protected: SurfaceTextureClient(); + virtual ~SurfaceTextureClient(); void setISurfaceTexture(const sp<ISurfaceTexture>& surfaceTexture); private: |