From 055a835ed4b9a7ee170e1f7b57531095c536dd6e Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Mon, 18 Dec 2023 00:12:58 +0530 Subject: [PATCH] fix(editor): ensure JsonReaders are always closed when reading color schemes --- .../editor/schemes/internal/parser/common.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/editor/src/main/java/com/itsaky/androidide/editor/schemes/internal/parser/common.kt b/editor/src/main/java/com/itsaky/androidide/editor/schemes/internal/parser/common.kt index 8c5f03393..fc4b15dfb 100644 --- a/editor/src/main/java/com/itsaky/androidide/editor/schemes/internal/parser/common.kt +++ b/editor/src/main/java/com/itsaky/androidide/editor/schemes/internal/parser/common.kt @@ -30,8 +30,11 @@ fun IDEColorScheme.parseEditorScheme(reader: JsonReader, resolveFileRef: (String val newReader = if (reader.peek() == STRING) { readerForFileRef(reader, "editor", resolveFileRef) } else reader - EditorSchemeParser(newReader).parse(this).also { - if (reader != newReader) { + + try { + EditorSchemeParser(newReader).parse(this) + } finally { + if (reader !== newReader) { newReader.close() } } @@ -93,8 +96,10 @@ fun IDEColorScheme.parseLanguage( readerForFileRef(reader, "language", resolveFileRef) } else reader - return LanguageParser(newReader).parseLang(this).also { - if (reader != newReader) { + return try { + LanguageParser(newReader).parseLang(this) + } finally { + if (reader !== newReader) { newReader.close() } }