Skip to content

Commit 8857b2f

Browse files
committed
Add more temporary logging for investigating detachFunctor
bug:6596807 Change-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f
1 parent 0c01222 commit 8857b2f

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

core/java/android/view/HardwareRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,7 +1229,7 @@ private void scheduleFunctors(View.AttachInfo attachInfo) {
12291229
void detachFunctor(int functor) {
12301230
if (mCanvas != null) {
12311231
mCanvas.detachFunctor(functor);
1232-
}
1232+
} else Log.e(LOG_TAG, "can't detachFunctor, have no canvas");
12331233
}
12341234

12351235
@Override

core/java/android/view/ViewRootImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,9 @@ public boolean attachFunctor(int functor) {
678678
}
679679

680680
public void detachFunctor(int functor) {
681+
Log.e(HardwareRenderer.LOG_TAG, String.format("detachFunctor, mHarwareRenderer==null %b, enabled %b",
682+
mAttachInfo.mHardwareRenderer == null,
683+
mAttachInfo.mHardwareRenderer == null ? false : mAttachInfo.mHardwareRenderer.isEnabled()));
681684
if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
682685
mAttachInfo.mHardwareRenderer.detachFunctor(functor);
683686
}

libs/hwui/OpenGLRenderer.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,10 @@ void OpenGLRenderer::resume() {
262262
}
263263

264264
void OpenGLRenderer::detachFunctor(Functor* functor) {
265-
mFunctors.remove(functor);
265+
int size = mFunctors.size();
266+
int remove = mFunctors.remove(functor);
267+
ALOGD("OGLR %p detachFunctor %p, removed at index %d of %d",
268+
this, functor, remove, size);
266269
}
267270

268271
void OpenGLRenderer::attachFunctor(Functor* functor) {
@@ -309,7 +312,7 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {
309312

310313
status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
311314
interrupt();
312-
detachFunctor(functor);
315+
mFunctors.remove(functor);
313316

314317
if (mDirtyClip) {
315318
setScissorFromClip();

0 commit comments

Comments
 (0)