diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h b/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h index a0cd0e0d391..84eb2b04d07 100644 --- a/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h +++ b/chromium/third_party/blink/renderer/modules/canvas/canvas2d/path_2d.h @@ -31,7 +31,6 @@ #include "third_party/blink/renderer/bindings/modules/v8/path_2d_or_string.h" #include "third_party/blink/renderer/core/geometry/dom_matrix.h" #include "third_party/blink/renderer/core/geometry/dom_matrix_2d_init.h" -#include "third_party/blink/renderer/core/svg/svg_matrix_tear_off.h" #include "third_party/blink/renderer/core/svg/svg_path_utilities.h" #include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_path.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" @@ -40,6 +39,8 @@ namespace blink { +class ExceptionState; + class MODULES_EXPORT Path2D final : public ScriptWrappable, public CanvasPath { DEFINE_WRAPPERTYPEINFO(); WTF_MAKE_NONCOPYABLE(Path2D); @@ -48,42 +49,36 @@ class MODULES_EXPORT Path2D final : public ScriptWrappable, public CanvasPath { static Path2D* Create(Path2DOrString pathorstring) { DCHECK(!pathorstring.IsNull()); if (pathorstring.IsPath2D()) - return new Path2D(pathorstring.GetAsPath2D()); + return MakeGarbageCollected<Path2D>(pathorstring.GetAsPath2D()); if (pathorstring.IsString()) - return new Path2D(pathorstring.GetAsString()); + return MakeGarbageCollected<Path2D>(pathorstring.GetAsString()); NOTREACHED(); return nullptr; } - static Path2D* Create() { return new Path2D; } - static Path2D* Create(const Path& path) { return new Path2D(path); } + static Path2D* Create() { return MakeGarbageCollected<Path2D>(); } + static Path2D* Create(const Path& path) { + return MakeGarbageCollected<Path2D>(path); + } const Path& GetPath() const { return path_; } - void addPath(Path2D* path) { - DOMMatrix2DInit transform; - addPath(path, transform); + void addPath(Path2D* path, + DOMMatrix2DInit* transform, + ExceptionState& exception_state) { + DOMMatrixReadOnly* matrix = + DOMMatrixReadOnly::fromMatrix2D(transform, exception_state); + if (!matrix) + return; + path_.AddPath(path->GetPath(), matrix->GetAffineTransform()); } - void addPath(Path2D* path, DOMMatrix2DInit& transform) { - Path src = path->GetPath(); - DOMMatrixReadOnly* m = nullptr; - m = DOMMatrixReadOnly::fromMatrix2D(transform); - path_.AddPath( - src, m ? m->GetAffineTransform() : AffineTransform(1, 0, 0, 1, 0, 0)); - } - - ~Path2D() override = default; - - private: Path2D() : CanvasPath() {} - Path2D(const Path& path) : CanvasPath(path) {} - Path2D(Path2D* path) : CanvasPath(path->GetPath()) {} - Path2D(const String& path_data) : CanvasPath() { BuildPathFromString(path_data, path_); } + ~Path2D() override = default; }; } // namespace blink |