mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Remove the type parameter from SkObjectFinalizationRegistry. (flutter/engine#21061)
This commit is contained in:
parent
dda761af69
commit
21c8ce0b47
@ -1640,7 +1640,7 @@ class TypefaceFontProviderNamespace {
|
||||
Timer? _skObjectCollector;
|
||||
List<SkDeletable> _skObjectDeleteQueue = <SkDeletable>[];
|
||||
|
||||
final SkObjectFinalizationRegistry<SkDeletable> skObjectFinalizationRegistry = SkObjectFinalizationRegistry<SkDeletable>(js.allowInterop((SkDeletable deletable) {
|
||||
final SkObjectFinalizationRegistry skObjectFinalizationRegistry = SkObjectFinalizationRegistry(js.allowInterop((SkDeletable deletable) {
|
||||
_skObjectDeleteQueue.add(deletable);
|
||||
_skObjectCollector ??= _scheduleSkObjectCollection();
|
||||
}));
|
||||
@ -1673,8 +1673,6 @@ Timer _scheduleSkObjectCollection() => Timer(Duration.zero, () {
|
||||
html.window.performance.measure('SkObject collection', 'SkObject collection-start', 'SkObject collection-end');
|
||||
});
|
||||
|
||||
typedef SkObjectFinalizer<T> = void Function(T key);
|
||||
|
||||
/// Any Skia object that has a `delete` method.
|
||||
@JS()
|
||||
@anonymous
|
||||
@ -1698,8 +1696,10 @@ class SkDeletable {
|
||||
/// 5. The finalizer function is called with the SkPaint as the sole argument.
|
||||
/// 6. We call `delete` on SkPaint.
|
||||
@JS('window.FinalizationRegistry')
|
||||
class SkObjectFinalizationRegistry<T> {
|
||||
external SkObjectFinalizationRegistry(SkObjectFinalizer<T> finalizer);
|
||||
class SkObjectFinalizationRegistry {
|
||||
// TODO(hterkelsen): Add a type for the `cleanup` function when
|
||||
// native constructors support type parameters.
|
||||
external SkObjectFinalizationRegistry(Function cleanup);
|
||||
external void register(Object ckObject, Object skObject);
|
||||
}
|
||||
|
||||
|
||||
@ -264,9 +264,8 @@ class SkiaObjectBox {
|
||||
bool _isDeleted = false;
|
||||
|
||||
/// Deletes Skia objects when their wrappers are garbage collected.
|
||||
static final SkObjectFinalizationRegistry<SkiaObjectBox> boxRegistry =
|
||||
SkObjectFinalizationRegistry<SkiaObjectBox>(
|
||||
js.allowInterop((SkiaObjectBox box) {
|
||||
static final SkObjectFinalizationRegistry boxRegistry =
|
||||
SkObjectFinalizationRegistry(js.allowInterop((SkiaObjectBox box) {
|
||||
box.delete();
|
||||
}));
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user