diff options
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/WebCore/html/ImageDocument.cpp | 6 | ||||
| -rw-r--r-- | Source/WebCore/platform/Length.h | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/Source/WebCore/html/ImageDocument.cpp b/Source/WebCore/html/ImageDocument.cpp index 7d9bcc589..594ccad90 100644 --- a/Source/WebCore/html/ImageDocument.cpp +++ b/Source/WebCore/html/ImageDocument.cpp @@ -135,6 +135,8 @@ void ImageDocumentParser::appendBytes(DocumentWriter*, const char*, size_t) return; CachedImage* cachedImage = document()->cachedImage(); + if (!cachedImage) + return; RefPtr<ResourceBuffer> resourceData = frame->loader()->documentLoader()->mainResourceData(); cachedImage->addDataBuffer(resourceData.get()); @@ -143,8 +145,8 @@ void ImageDocumentParser::appendBytes(DocumentWriter*, const char*, size_t) void ImageDocumentParser::finish() { - if (!isStopped() && document()->imageElement()) { - CachedImage* cachedImage = document()->cachedImage(); + CachedImage* cachedImage = 0; + if (!isStopped() && document()->imageElement() && (cachedImage = document()->cachedImage())) { RefPtr<ResourceBuffer> data = document()->frame()->loader()->documentLoader()->mainResourceData(); // If this is a multipart image, make a copy of the current part, since the resource data diff --git a/Source/WebCore/platform/Length.h b/Source/WebCore/platform/Length.h index 2f91550da..72263b045 100644 --- a/Source/WebCore/platform/Length.h +++ b/Source/WebCore/platform/Length.h @@ -233,6 +233,11 @@ public: Length blend(const Length& from, double progress) const { // Blend two lengths to produce a new length that is in between them. Used for animation. + if (from.isUndefined()) + return *this; + if (isUndefined()) + return from; + if (from.type() == Calculated || type() == Calculated) return blendMixedTypes(from, progress); |
