Merge "Add more temporary logging for investigating detachFunctor" into jb-dev

This commit is contained in:
Chris Craik
2012-06-05 12:28:49 -07:00
committed by Android (Google) Code Review
3 changed files with 9 additions and 3 deletions

View File

@ -1229,7 +1229,7 @@ public abstract class HardwareRenderer {
void detachFunctor(int functor) { void detachFunctor(int functor) {
if (mCanvas != null) { if (mCanvas != null) {
mCanvas.detachFunctor(functor); mCanvas.detachFunctor(functor);
} } else Log.e(LOG_TAG, "can't detachFunctor, have no canvas");
} }
@Override @Override

View File

@ -678,6 +678,9 @@ public final class ViewRootImpl implements ViewParent,
} }
public void detachFunctor(int functor) { public void detachFunctor(int functor) {
Log.e(HardwareRenderer.LOG_TAG, String.format("detachFunctor, mHarwareRenderer==null %b, enabled %b",
mAttachInfo.mHardwareRenderer == null,
mAttachInfo.mHardwareRenderer == null ? false : mAttachInfo.mHardwareRenderer.isEnabled()));
if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
mAttachInfo.mHardwareRenderer.detachFunctor(functor); mAttachInfo.mHardwareRenderer.detachFunctor(functor);
} }

View File

@ -262,7 +262,10 @@ void OpenGLRenderer::resume() {
} }
void OpenGLRenderer::detachFunctor(Functor* functor) { void OpenGLRenderer::detachFunctor(Functor* functor) {
mFunctors.remove(functor); int size = mFunctors.size();
int remove = mFunctors.remove(functor);
ALOGD("OGLR %p detachFunctor %p, removed at index %d of %d",
this, functor, remove, size);
} }
void OpenGLRenderer::attachFunctor(Functor* functor) { void OpenGLRenderer::attachFunctor(Functor* functor) {
@ -309,7 +312,7 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {
status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) { status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
interrupt(); interrupt();
detachFunctor(functor); mFunctors.remove(functor);
if (mDirtyClip) { if (mDirtyClip) {
setScissorFromClip(); setScissorFromClip();