Deep copy SkPath parameter to PathCache task
bug:15440706
Change-Id: I2b5b25f620df838cb1155cc8502d86ad3644c212
diff --git a/libs/hwui/PathCache.h b/libs/hwui/PathCache.h
index eee138b..bc34188 100644
--- a/libs/hwui/PathCache.h
+++ b/libs/hwui/PathCache.h
@@ -272,15 +272,18 @@
class PathTask: public Task<SkBitmap*> {
public:
PathTask(const SkPath* path, const SkPaint* paint, PathTexture* texture):
- path(path), paint(*paint), texture(texture) {
+ path(*path), paint(*paint), texture(texture) {
}
~PathTask() {
delete future()->get();
}
- const SkPath* path;
- //copied, since input paint may not be immutable
+ // copied, since input path not refcounted / guaranteed to survive for duration of task
+ // TODO: avoid deep copy with refcounting
+ const SkPath path;
+
+ // copied, since input paint may not be immutable
const SkPaint paint;
PathTexture* texture;
};