Fix bug 5297302 - Remember to release surface after starting drag
Forgetting to release it was "safe" in that GC would eventually tidy it up anyway, but in the meantime it was possible for a user to do lots of drag operations, racing ahead of the progress of the garbage collector, and wind up with drags failing because we'd run out of surface slots due to all the piled up stale drag shadows. Change-Id: I7ac93b13cc9996dda04a404571fbc44cb4314694
This commit is contained in:
@@ -13174,6 +13174,10 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
||||
shadowSize.x, shadowSize.y,
|
||||
shadowTouchPoint.x, shadowTouchPoint.y, data);
|
||||
if (ViewDebug.DEBUG_DRAG) Log.d(VIEW_LOG_TAG, "performDrag returned " + okay);
|
||||
|
||||
// Off and running! Release our local surface instance; the drag
|
||||
// shadow surface is now managed by the system process.
|
||||
surface.release();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(VIEW_LOG_TAG, "Unable to initiate drag", e);
|
||||
|
||||
Reference in New Issue
Block a user