Merge "Fix a resource race bug in PathCache"
This commit is contained in:
@ -346,7 +346,7 @@ void PathCache::PathProcessor::onProcess(const sp<Task<SkBitmap*> >& task) {
|
||||
|
||||
float left, top, offset;
|
||||
uint32_t width, height;
|
||||
PathCache::computePathBounds(t->path, t->paint, left, top, offset, width, height);
|
||||
PathCache::computePathBounds(t->path, &t->paint, left, top, offset, width, height);
|
||||
|
||||
PathTexture* texture = t->texture;
|
||||
texture->left = left;
|
||||
@ -357,7 +357,7 @@ void PathCache::PathProcessor::onProcess(const sp<Task<SkBitmap*> >& task) {
|
||||
|
||||
if (width <= mMaxTextureSize && height <= mMaxTextureSize) {
|
||||
SkBitmap* bitmap = new SkBitmap();
|
||||
drawPath(t->path, t->paint, *bitmap, left, top, offset, width, height);
|
||||
drawPath(t->path, &t->paint, *bitmap, left, top, offset, width, height);
|
||||
t->setResult(bitmap);
|
||||
} else {
|
||||
texture->width = 0;
|
||||
|
@ -293,7 +293,7 @@ private:
|
||||
class PathTask: public Task<SkBitmap*> {
|
||||
public:
|
||||
PathTask(SkPath* path, SkPaint* paint, PathTexture* texture):
|
||||
path(path), paint(paint), texture(texture) {
|
||||
path(path), paint(*paint), texture(texture) {
|
||||
}
|
||||
|
||||
~PathTask() {
|
||||
@ -301,7 +301,8 @@ private:
|
||||
}
|
||||
|
||||
SkPath* path;
|
||||
SkPaint* paint;
|
||||
//copied, since input paint may not be immutable
|
||||
SkPaint paint;
|
||||
PathTexture* texture;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user