| Index: cc/resources/picture.cc
|
| diff --git a/cc/resources/picture.cc b/cc/resources/picture.cc
|
| index 86ed2e60d91d2b965c7a7d3656be3f927a5a08bb..491617a30df50031b3cc41aecc944990ae1af456 100644
|
| --- a/cc/resources/picture.cc
|
| +++ b/cc/resources/picture.cc
|
| @@ -86,61 +86,56 @@ scoped_refptr<Picture> Picture::Create(gfx::Rect layer_rect) {
|
| return make_scoped_refptr(new Picture(layer_rect));
|
| }
|
|
|
| -scoped_refptr<Picture> Picture::CreateFromValue(const base::Value* value) {
|
| - bool success;
|
| - scoped_refptr<Picture> picture =
|
| - make_scoped_refptr(new Picture(value, &success));
|
| - if (!success)
|
| - picture = NULL;
|
| - return picture;
|
| -}
|
| -
|
| Picture::Picture(gfx::Rect layer_rect)
|
| : layer_rect_(layer_rect) {
|
| // Instead of recording a trace event for object creation here, we wait for
|
| // the picture to be recorded in Picture::Record.
|
| }
|
|
|
| -Picture::Picture(const base::Value* raw_value, bool* success) {
|
| +scoped_refptr<Picture> Picture::CreateFromValue(const base::Value* raw_value) {
|
| const base::DictionaryValue* value = NULL;
|
| - if (!raw_value->GetAsDictionary(&value)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| + if (!raw_value->GetAsDictionary(&value))
|
| + return NULL;
|
|
|
| // Decode the picture from base64.
|
| std::string encoded;
|
| - if (!value->GetString("skp64", &encoded)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| + if (!value->GetString("skp64", &encoded))
|
| + return NULL;
|
|
|
| std::string decoded;
|
| base::Base64Decode(encoded, &decoded);
|
| SkMemoryStream stream(decoded.data(), decoded.size());
|
|
|
| - const base::Value* layer_rect = NULL;
|
| - if (!value->Get("params.layer_rect", &layer_rect)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| - if (!MathUtil::FromValue(layer_rect, &layer_rect_)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| + const base::Value* layer_rect_value = NULL;
|
| + if (!value->Get("params.layer_rect", &layer_rect_value))
|
| + return NULL;
|
|
|
| - const base::Value* opaque_rect = NULL;
|
| - if (!value->Get("params.opaque_rect", &opaque_rect)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| - if (!MathUtil::FromValue(opaque_rect, &opaque_rect_)) {
|
| - *success = false;
|
| - return;
|
| - }
|
| + gfx::Rect layer_rect;
|
| + if (!MathUtil::FromValue(layer_rect_value, &layer_rect))
|
| + return NULL;
|
| +
|
| + const base::Value* opaque_rect_value = NULL;
|
| + if (!value->Get("params.opaque_rect", &opaque_rect_value))
|
| + return NULL;
|
| +
|
| + gfx::Rect opaque_rect;
|
| + if (!MathUtil::FromValue(opaque_rect_value, &opaque_rect))
|
| + return NULL;
|
|
|
| // Read the picture. This creates an empty picture on failure.
|
| - picture_ = skia::AdoptRef(new SkPicture(&stream, success, &DecodeBitmap));
|
| + SkPicture* skpicture = SkPicture::CreateFromStream(&stream, &DecodeBitmap);
|
| + if (skpicture == NULL)
|
| + return NULL;
|
| +
|
| + return make_scoped_refptr(new Picture(skpicture, layer_rect, opaque_rect));
|
| +}
|
| +
|
| +Picture::Picture(SkPicture* picture,
|
| + gfx::Rect layer_rect,
|
| + gfx::Rect opaque_rect) :
|
| + layer_rect_(layer_rect),
|
| + opaque_rect_(opaque_rect),
|
| + picture_(skia::AdoptRef(picture)) {
|
| }
|
|
|
| Picture::Picture(const skia::RefPtr<SkPicture>& picture,
|
|
|