Skip to content

Commit d7d915a

Browse files
committed
Make jsNativeMember collection thread-safe
1 parent eb8f45b commit d7d915a

File tree

1 file changed

+3
-2
lines changed
  • linker/shared/src/main/scala/org/scalajs/linker/analyzer

1 file changed

+3
-2
lines changed

linker/shared/src/main/scala/org/scalajs/linker/analyzer/Analyzer.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,8 @@ final class Analyzer(config: CommonPhaseConfig, initial: Boolean,
618618
val staticFieldsRead: mutable.Set[FieldName] = mutable.Set.empty
619619
val staticFieldsWritten: mutable.Set[FieldName] = mutable.Set.empty
620620

621-
val jsNativeMembersUsed: mutable.Set[MethodName] = mutable.Set.empty
621+
private[this] val _jsNativeMembersUsed: mutable.Map[MethodName, Unit] = emptyThreadSafeMap
622+
def jsNativeMembersUsed: scala.collection.Set[MethodName] = _jsNativeMembersUsed.keySet
622623

623624
val jsNativeLoadSpec: Option[JSNativeLoadSpec] = data.jsNativeLoadSpec
624625

@@ -1213,7 +1214,7 @@ final class Analyzer(config: CommonPhaseConfig, initial: Boolean,
12131214
def useJSNativeMember(name: MethodName)(
12141215
implicit from: From): Option[JSNativeLoadSpec] = {
12151216
val maybeJSNativeLoadSpec = data.jsNativeMembers.get(name)
1216-
if (jsNativeMembersUsed.add(name)) {
1217+
if (_jsNativeMembersUsed.put(name, ()).isEmpty) {
12171218
maybeJSNativeLoadSpec match {
12181219
case None =>
12191220
_errors ::= MissingJSNativeMember(this, name, from)

0 commit comments

Comments
 (0)