From 688b3f26f2b529b8eb38daf1a4b888bd8f780cd1 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Wed, 18 Apr 2018 11:47:58 +0100 Subject: [PATCH] Be more tolerant to non-existing paths in library reader. (#1511) --- .../backend/konan/library/impl/KonanLibraryReaderImpl.kt | 5 +++-- .../src/main/kotlin/org/jetbrains/kotlin/konan/file/File.kt | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/library/impl/KonanLibraryReaderImpl.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/library/impl/KonanLibraryReaderImpl.kt index 82116c83fe1..59ddb87fa17 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/library/impl/KonanLibraryReaderImpl.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/library/impl/KonanLibraryReaderImpl.kt @@ -60,10 +60,11 @@ class LibraryReaderImpl(var libraryFile: File, val currentAbiVersion: Int, get() = manifestProperties.propertyString("unique_name")!! override val bitcodePaths: List - get() = (realFiles.kotlinDir.listFiles + realFiles.nativeDir.listFiles).map{it.absolutePath} + get() = (realFiles.kotlinDir.listFilesOrEmpty + realFiles.nativeDir.listFilesOrEmpty) + .map { it.absolutePath } override val includedPaths: List - get() = (realFiles.includedDir.listFiles).map{it.absolutePath} + get() = (realFiles.includedDir.listFilesOrEmpty).map { it.absolutePath } override val linkerOpts: List get() = manifestProperties.propertyList("linkerOpts", target!!.visibleName) diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/file/File.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/file/File.kt index 027fe21109a..0ac8b870395 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/file/File.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/file/File.kt @@ -52,6 +52,8 @@ data class File constructor(internal val javaPath: Path) { get() = javaPath.isAbsolute() val listFiles: List get() = Files.newDirectoryStream(javaPath).use { stream -> stream.map { File(it) } } + val listFilesOrEmpty: List + get() = if (exists) listFiles else emptyList() fun child(name: String) = File(this, name)