diff options
| author | 2011-03-17 00:12:01 -0700 | |
|---|---|---|
| committer | 2011-03-17 00:12:01 -0700 | |
| commit | 679c2bc790cd0bec55e22bda80e7f37c01f4516b (patch) | |
| tree | a7502118c6abd0c1aa64eba593b5e63aba3715fa /services/surfaceflinger/Layer.cpp | |
| parent | fc3d156784d08bbfa25510149104726b83012327 (diff) | |
| parent | 9260be0e7964d8e35da2e2ba4354d0e97633aafa (diff) | |
am 25594e19: am f40e638e: fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out
* commit '25594e1984125081878d2ea057700366a34a8ccf':
fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
| -rw-r--r-- | services/surfaceflinger/Layer.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 1297363159..cd24478c10 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -858,11 +858,13 @@ status_t Layer::BufferManager::resize(size_t size, Mutex::Autolock _l(mLock); if (size < mNumBuffers) { - // Move the active texture into slot 0 - BufferData activeBufferData = mBufferData[mActiveBufferIndex]; - mBufferData[mActiveBufferIndex] = mBufferData[0]; - mBufferData[0] = activeBufferData; - mActiveBufferIndex = 0; + // If there is an active texture, move it into slot 0 if needed + if (mActiveBufferIndex > 0) { + BufferData activeBufferData = mBufferData[mActiveBufferIndex]; + mBufferData[mActiveBufferIndex] = mBufferData[0]; + mBufferData[0] = activeBufferData; + mActiveBufferIndex = 0; + } // Free the buffers that are no longer needed. for (size_t i = size; i < mNumBuffers; i++) { |