aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/SkCanvas.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 7fbb952d22..49da8eb3a7 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -50,6 +50,7 @@
#include "SkVertices.h"
#define RETURN_ON_NULL(ptr) do { if (nullptr == (ptr)) return; } while (0)
+#define RETURN_ON_FALSE(pred) do { if (!(pred)) return; } while (0)
class SkNoPixelsDevice : public SkBaseDevice {
public:
@@ -2610,6 +2611,7 @@ void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
const SkPaint& paint) {
TRACE_EVENT0("skia", TRACE_FUNC);
RETURN_ON_NULL(blob);
+ RETURN_ON_FALSE(blob->bounds().makeOffset(x, y).isFinite());
this->onDrawTextBlob(blob, x, y, paint);
}