File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed
core/commonMain/src/implementations/immutableSet Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -132,9 +132,7 @@ internal class TrieNode<E>(
132
132
cell = newNode
133
133
}
134
134
135
- val newBuffer = buffer.copyOf()
136
- newBuffer[nodeIndex] = cell
137
- return TrieNode (bitmap, newBuffer)
135
+ return setCellAtIndex(nodeIndex, cell, owner = null )
138
136
}
139
137
140
138
/* * The given [newNode] must not be a part of any persistent set instance. */
@@ -152,12 +150,16 @@ internal class TrieNode<E>(
152
150
cell = newNode
153
151
}
154
152
155
- if (ownedBy == = owner) {
156
- buffer[nodeIndex] = cell
153
+ return setCellAtIndex(nodeIndex, cell, owner)
154
+ }
155
+
156
+ private fun setCellAtIndex (cellIndex : Int , newCell : Any? , owner : MutabilityOwnership ? ): TrieNode <E > {
157
+ if (ownedBy != null && ownedBy == = owner) {
158
+ buffer[cellIndex] = newCell
157
159
return this
158
160
}
159
161
val newBuffer = buffer.copyOf()
160
- newBuffer[nodeIndex ] = cell
162
+ newBuffer[cellIndex ] = newCell
161
163
return TrieNode (bitmap, newBuffer, owner)
162
164
}
163
165
You can’t perform that action at this time.
0 commit comments