From cd0650f6b7cfff02e650d0b417b205529466f757 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 12 Feb 2025 16:00:38 -0500 Subject: [PATCH] fix: dispose TextPainter after use (#1777) --- lib/pangea/morphs/morph_meaning/morph_info_repo.dart | 2 +- lib/pangea/morphs/morph_meaning/morph_info_response.dart | 6 ++++-- lib/pangea/toolbar/widgets/message_token_text.dart | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/pangea/morphs/morph_meaning/morph_info_repo.dart b/lib/pangea/morphs/morph_meaning/morph_info_repo.dart index 2f7d292ef..11d988cd8 100644 --- a/lib/pangea/morphs/morph_meaning/morph_info_repo.dart +++ b/lib/pangea/morphs/morph_meaning/morph_info_repo.dart @@ -48,7 +48,7 @@ class MorphInfoRepo { set(request, response); return response; - } catch (e, s) { + } catch (e) { debugPrint('Error fetching morph info: $e'); return Future.error(e); } diff --git a/lib/pangea/morphs/morph_meaning/morph_info_response.dart b/lib/pangea/morphs/morph_meaning/morph_info_response.dart index 287e98a4e..4aa958eba 100644 --- a/lib/pangea/morphs/morph_meaning/morph_info_response.dart +++ b/lib/pangea/morphs/morph_meaning/morph_info_response.dart @@ -69,7 +69,8 @@ class MorphologicalFeature { MorphologicalTag? getTagByCode(String code) { return tags.firstWhereOrNull( - (tag) => tag.code.toLowerCase() == code.toLowerCase()); + (tag) => tag.code.toLowerCase() == code.toLowerCase(), + ); } } @@ -107,6 +108,7 @@ class MorphInfoResponse { MorphologicalFeature? getFeatureByCode(String code) { return features.firstWhereOrNull( - (feature) => feature.code.toLowerCase() == code.toLowerCase()); + (feature) => feature.code.toLowerCase() == code.toLowerCase(), + ); } } diff --git a/lib/pangea/toolbar/widgets/message_token_text.dart b/lib/pangea/toolbar/widgets/message_token_text.dart index 81713f109..233f87b33 100644 --- a/lib/pangea/toolbar/widgets/message_token_text.dart +++ b/lib/pangea/toolbar/widgets/message_token_text.dart @@ -105,6 +105,8 @@ class HiddenText extends StatelessWidget { final textWidth = textPainter.size.width; final textHeight = textPainter.size.height; + textPainter.dispose(); + return SizedBox( height: textHeight, child: Stack(