Make workaround for std::unique_ptr<const T[]> bug in old libstdc++ work.

BUG=skia:

Change-Id: I58a07d4ce35bdd03e7edcf50e88d9982b3885546
Reviewed-on: https://skia-review.googlesource.com/8101
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/gm/vertices.cpp b/gm/vertices.cpp
index 2ca4926..b2ab3eb 100644
--- a/gm/vertices.cpp
+++ b/gm/vertices.cpp
@@ -104,10 +104,12 @@
             // std::unique_ptr<const T[]>. Hence the release() calls below.
             fVertices = SkVertices::MakeIndexed(
                     SkCanvas::kTriangleFan_VertexMode,
-                    std::unique_ptr<const SkPoint[]>(points.release()),
-                    std::unique_ptr<const SkColor[]>(colors.release()),
-                    std::unique_ptr<const SkPoint[]>(texs.release()), kMeshVertexCnt,
-                    std::unique_ptr<const uint16_t[]>(indices.release()), kMeshIndexCnt);
+                    std::unique_ptr<const SkPoint[]>((const SkPoint*)points.release()),
+                    std::unique_ptr<const SkColor[]>((const SkColor*)colors.release()),
+                    std::unique_ptr<const SkPoint[]>((const SkPoint*)texs.release()),
+                    kMeshVertexCnt,
+                    std::unique_ptr<const uint16_t[]>((const uint16_t*)indices.release()),
+                    kMeshIndexCnt);
         }
     }
 
@@ -237,10 +239,12 @@
         // Older libstdc++ does not allow moving a std::unique_ptr<T[]> into a
         // std::unique_ptr<const T[]>. Hence the release() calls below.
         vertices = SkVertices::MakeIndexed(
-                SkCanvas::kTriangles_VertexMode, std::unique_ptr<const SkPoint[]>(pts.release()),
-                std::unique_ptr<const SkColor[]>(colors.release()),
-                std::unique_ptr<const SkPoint[]>(texs.release()), kMeshVertexCnt,
-                std::unique_ptr<const uint16_t[]>(indices.release()), 3 * kNumTris);
+                SkCanvas::kTriangles_VertexMode,
+                std::unique_ptr<const SkPoint[]>((const SkPoint*)pts.release()),
+                std::unique_ptr<const SkColor[]>((const SkColor*)colors.release()),
+                std::unique_ptr<const SkPoint[]>((const SkPoint*)texs.release()), kMeshVertexCnt,
+                std::unique_ptr<const uint16_t[]>((const uint16_t*)indices.release()),
+                3 * kNumTris);
     }
     canvas->save();
     canvas->translate(10, 10);
diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp
index fd49fac..faef239 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -44,14 +44,16 @@
     if (indices) {
         vertices = SkVertices::MakeIndexed(
                 kIgnoredMode, std::unique_ptr<const SkPoint[]>((const SkPoint*)pos.release()),
-                std::unique_ptr<const SkColor[]>(col.release()),
-                std::unique_ptr<const SkPoint[]>(lc.release()), vertexCount,
-                std::unique_ptr<const uint16_t[]>(idx.release()), indexCount, bounds);
+                std::unique_ptr<const SkColor[]>((const SkColor*)col.release()),
+                std::unique_ptr<const SkPoint[]>((const SkPoint*)lc.release()), vertexCount,
+                std::unique_ptr<const uint16_t[]>((const uint16_t*)idx.release()), indexCount,
+                bounds);
     } else {
-        vertices = SkVertices::Make(kIgnoredMode, std::unique_ptr<const SkPoint[]>(pos.release()),
-                                    std::unique_ptr<const SkColor[]>(col.release()),
-                                    std::unique_ptr<const SkPoint[]>(lc.release()), vertexCount,
-                                    bounds);
+        vertices = SkVertices::Make(kIgnoredMode,
+                                    std::unique_ptr<const SkPoint[]>((const SkPoint*)pos.release()),
+                                    std::unique_ptr<const SkColor[]>((const SkColor*)col.release()),
+                                    std::unique_ptr<const SkPoint[]>((const SkPoint*)lc.release()),
+                                    vertexCount, bounds);
     }
     if (!vertices) {
         return nullptr;