Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit b8654ff

Browse files
authored
[web] Fix conic to quad conversion assertion. (#18811)
* Fix subdivision assertion in Conic to Quad conversion * Use const for upper bound * remove unused import
1 parent bd0de19 commit b8654ff

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/web_ui/lib/src/engine/conic.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class Conic {
3333

3434
// Split conic into quads, writes quad coordinates into [_pointList] and
3535
// returns number of quads.
36-
assert(subdivideCount > 0);
36+
assert(subdivideCount >= 0 && subdivideCount <= _maxSubdivisionCount);
3737
int quadCount = 1 << subdivideCount;
3838
bool skipSubdivide = false;
3939
pointList.add(ui.Offset(p0x, p0y));

lib/web_ui/test/path_test.dart

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// found in the LICENSE file.
44

55
// @dart = 2.6
6-
import 'package:test/test.dart';
76
import 'dart:js_util' as js_util;
87
import 'dart:html' as html;
8+
import 'package:test/test.dart';
99
import 'package:ui/ui.dart' hide window;
1010
import 'package:ui/src/engine.dart';
1111

@@ -309,4 +309,10 @@ void main() {
309309
expect(path2.contains(Offset(100, 100)), isFalse);
310310
expect(path2.contains(Offset(50, 100)), isFalse);
311311
});
312+
313+
test('Should convert conic to quad when approximation error is small', () {
314+
Conic conic = Conic(120.0, 20.0, 160.99470420829266, 20.0,
315+
190.19301120261332, 34.38770865870253, 0.9252691032413082);
316+
expect(conic.toQuads().length, 3);
317+
});
312318
}

0 commit comments

Comments
 (0)