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
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 1cc428b..65e9857 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -13174,6 +13174,10 @@
                         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);