OSDN Git Service

Fix SurfaceViewPositionListener race bugs
authorJohn Reck <jreck@google.com>
Mon, 27 Jun 2016 20:27:23 +0000 (13:27 -0700)
committerJohn Reck <jreck@google.com>
Mon, 10 Oct 2016 20:36:36 +0000 (13:36 -0700)
commit85ddb2df2f41eb4b442669d4a2528a4e346e2557
treebf1ab4387396f5d968cf51b0c053b3beba5fde39
parent66f15cc01befadf7ce19629680798b31046978c3
Fix SurfaceViewPositionListener race bugs

Bug: 29628138

1: Make windowPositionLost synchronous as that's
what the Java side was expecting

2: Make the listener ref counted as otherwise
there's a race condition with the GC, which could
end up with use-after-frees

3: Ensure that all position updates are invoked
prior to frame completion

Change-Id: Iedbc017f611ba2878a49b4586612f79249ca2fe3
(cherry picked from commit 7b570deea65bc7ac417a26ce3e4103bcef30e957)
core/jni/android_view_RenderNode.cpp
libs/hwui/RenderNode.h
libs/hwui/renderthread/CanvasContext.cpp