diff --git a/packages/vector_graphics_compiler/CHANGELOG.md b/packages/vector_graphics_compiler/CHANGELOG.md index adc696ab5ef..ba4804c871c 100644 --- a/packages/vector_graphics_compiler/CHANGELOG.md +++ b/packages/vector_graphics_compiler/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.15 + +* Fixes a bug where empty tags caused the parser to crash. + ## 1.1.14 * Makes the package WASM compatible. diff --git a/packages/vector_graphics_compiler/lib/src/svg/parser.dart b/packages/vector_graphics_compiler/lib/src/svg/parser.dart index 6cac8884d7f..6e846cf0018 100644 --- a/packages/vector_graphics_compiler/lib/src/svg/parser.dart +++ b/packages/vector_graphics_compiler/lib/src/svg/parser.dart @@ -895,7 +895,10 @@ class SvgParser { return false; } final ParentNode parent = _parentDrawables.last.drawable; - final Path path = pathFunc(this)!; + final Path? path = pathFunc(this); + if (path == null) { + return false; + } final PathNode drawable = PathNode(path, _currentAttributes); checkForIri(drawable); diff --git a/packages/vector_graphics_compiler/pubspec.yaml b/packages/vector_graphics_compiler/pubspec.yaml index 6c86d50b38a..1eba55f247b 100644 --- a/packages/vector_graphics_compiler/pubspec.yaml +++ b/packages/vector_graphics_compiler/pubspec.yaml @@ -2,7 +2,7 @@ name: vector_graphics_compiler description: A compiler to convert SVGs to the binary format used by `package:vector_graphics`. repository: https://github.com/flutter/packages/tree/main/packages/vector_graphics_compiler issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+vector_graphics%22 -version: 1.1.14 +version: 1.1.15 executables: vector_graphics_compiler: diff --git a/packages/vector_graphics_compiler/test/parser_test.dart b/packages/vector_graphics_compiler/test/parser_test.dart index 24743c82f5f..e6633fb6f25 100644 --- a/packages/vector_graphics_compiler/test/parser_test.dart +++ b/packages/vector_graphics_compiler/test/parser_test.dart @@ -7,6 +7,7 @@ import 'dart:io'; import 'package:flutter_test/flutter_test.dart'; import 'package:vector_graphics_compiler/src/svg/numbers.dart'; import 'package:vector_graphics_compiler/vector_graphics_compiler.dart'; + import 'test_svg_strings.dart'; void main() { @@ -1948,6 +1949,19 @@ void main() { ], ); }); + + test('Parse empty tag', () { + const String svgStr = ''' + + + + '''; + + expect(parseWithoutOptimizers(svgStr), isA()); + }); } const List ghostScriptTigerPaints = [