NBA2K1
8b1f7fc581
Add service disposal and lifecycle cleanup
...
This commit improves memory management, reduces redundant interpreter
instantiation, and standardizes service usage patterns.
- Add `dispose()` to `ExtensionService` interface and implement it across
Dart, JS, LNReader, and Mihon services.
- Replace repeated interpreter creation in `DartExtensionService` with a
persistent `_interpreter` instance initialized once in the constructor.
- Add disposal logic for JS DOM selector and Cheerio instances to prevent
memory leaks.
- Introduce `withExtensionService()` helper to ensure services are always
disposed after use.
- Update call sites across the codebase to use `withExtensionService()`
or manual try/finally disposal.
- Improve isolate service message handling by extracting `responsePort`
earlier.
- Ensure safer defaults (e.g., returning empty lists, const lists) when
service calls fail.
2026-01-13 01:11:19 +01:00
Moustapha Kodjo Amadou
7c4c8d8a20
+
2026-01-05 12:12:56 +01:00
Moustapha Kodjo Amadou
87fd4ef340
fix Undefined variable for client
2025-06-02 10:10:14 +01:00
NBA2K1
00c666fe3f
Fix Exception when leaving Code Editor
...
When leaving the Code Editor of certain Extensions, this Exception would throw:
```
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Runtime Error: Undefined variable: source (Original error: Undefined property 'source' on Madara.)
#0 InterpreterVisitor.visitSimpleIdentifier (package:d4rt/src/interpreter_visitor.dart:393:7)
interpreter_visitor.dart:393
#1 SimpleIdentifierImpl.accept (package:analyzer/src/dart/ast/ast.dart:16123:50)
ast.dart:16123
#2 InterpreterVisitor.visitPostfixExpression (package:d4rt/src/interpreter_visitor.dart:3930:41)
interpreter_visitor.dart:3930
#3 PostfixExpressionImpl.accept (package:analyzer/src/dart/ast/ast.dart:14311:50)
ast.dart:14311
#4 InterpreterVisitor._evaluateArguments (package:d4rt/src/interpreter_visitor.dart:5569:23)
interpreter_visitor.dart:5569
#5 InterpreterVisitor.visitMethodInvocation (package:d4rt/src/interpreter_visitor.dart:2178:13)
interpreter_visitor.dart:2178
#6 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12246:50)
ast.dart:12246
#7 InterpretedClass.createAndInitializeInstance (package:d4rt/src/runtime_types.dart:232:53)
runtime_types.dart:232
#8 InterpretedClass.call (package:d4rt/src/runtime_types.dart:299:22)
runtime_types.dart:299
#9 InterpreterVisitor.visitMethodInvocation (package:d4rt/src/interpreter_visitor.dart:2161:28)
interpreter_visitor.dart:2161
#10 MethodInvocationImpl.accept (package:analyzer/src/dart/ast/ast.dart:12246:50)
ast.dart:12246
#11 InterpreterVisitor.visitVariableDeclarationList (package:d4rt/src/interpreter_visitor.dart:3026:42)
interpreter_visitor.dart:3026
#12 VariableDeclarationListImpl.accept (package:analyzer/src/dart/ast/ast.dart:18695:15)
ast.dart:18695
#13 InterpreterVisitor.visitVariableDeclarationStatement (package:d4rt/src/interpreter_visitor.dart:135:27)
interpreter_visitor.dart:135
#14 VariableDeclarationStatementImpl.accept (package:analyzer/src/dart/ast/ast.dart:18753:15)
ast.dart:18753
#15 InterpreterVisitor.executeBlock (package:d4rt/src/interpreter_visitor.dart:66:33)
interpreter_visitor.dart:66
#16 InterpretedFunction.call (package:d4rt/src/callable.dart:589:36)
callable.dart:589
#17 D4rt.execute (package:d4rt/src/d4rt_base.dart:220:43)
d4rt_base.dart:220
#18 DartExtensionService._executeLib (package:mangayomi/eval/dart/service.dart:24:17)
service.dart:24
#19 DartExtensionService.getSourcePreferences (package:mangayomi/eval/dart/service.dart:179:25)
service.dart:179
#20 getSourcePreference (package:mangayomi/services/get_source_preference.dart:6:38)
get_source_preference.dart:6
#21 _ExtensionDetailState.build.<anonymous closure>.<anonymous closure> (package:mangayomi/modules/browse/extension/extension_detail.dart:173:44)
extension_detail.dart:173
#22 State.setState (package:flutter/src/widgets/framework.dart:1199:30)
framework.dart:1199
#23 _ExtensionDetailState.build.<anonymous closure> (package:mangayomi/modules/browse/extension/extension_detail.dart:171:23)
extension_detail.dart:171
<asynchronous suspension>
```
2025-06-01 19:52:21 +02:00
Moustapha Kodjo Amadou
80efee40d1
dart format
2025-05-30 17:43:42 +01:00
Moustapha Kodjo Amadou
2371d52661
update to d4rt v0.0.5
2025-05-18 13:20:35 +01:00
Moustapha Kodjo Amadou
206a51df69
+
2025-05-10 12:26:02 +01:00
Moustapha Kodjo Amadou
c558c08376
migrate to d4rt package
2025-05-09 17:47:27 +01:00
Schnitzel5
3677938bf8
added support for epubs
...
embedded images not supported yet
2025-05-07 22:17:23 +02:00
Moustapha Kodjo Amadou
3e401c8af2
dart format
2025-02-23 15:31:49 +01:00
Schnitzel5
5ae7a8d581
added option to download novels
2025-01-07 23:37:29 +01:00
Schnitzel5
34179a17a5
Merge branch 'feature/novel' into feature/light-novel
2024-12-20 15:59:06 +01:00
kodjomoustapha
a41ccaff22
fix & reformat
2024-12-20 10:15:15 +01:00
Schnitzel5
50eff04fe6
added extension functions
2024-12-20 00:22:18 +01:00
Yegor Shovkun
73b144ed16
refactor: move try-catch
2024-12-14 14:01:42 +02:00
Yegor Shovkun
f0cf52813a
refactor: refactor extension services
2024-12-14 13:55:40 +02:00
Yegor Shovkun
adbd1529f7
fix: cs fix (reformat with 120 line length)
2024-12-14 12:38:56 +02:00
kodjomoustapha
ad9f292c0e
+
2024-08-02 17:25:59 +01:00
kodjomoustapha
7d5640e2b0
feat: add a custom request headers for getPageList #235
2024-08-02 14:51:39 +01:00
kodjomoustapha
fd5b4b04b4
rm source_test
2024-05-25 19:39:14 +01:00
kodjomoustapha
170f07e3be
fix
2024-05-25 18:06:27 +01:00
kodjomoustapha
cbd01a3c17
refactor code
2024-05-23 11:19:23 +01:00