Revert using open hash set in dirtyFields
This commit is contained in:
parent
5b5c4de9f7
commit
1e68baea9d
@ -454,8 +454,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
}
|
||||
}
|
||||
|
||||
private val dirtyFields = ReferenceOpenHashSet<AbstractField<*>>(fields.size)
|
||||
private val dirtyFields2 = ArrayList<AbstractField<*>>()
|
||||
private val dirtyFields = ReferenceArraySet<AbstractField<*>>(fields.size)
|
||||
|
||||
// use LinkedList because it is ensured memory is freed on LinkedList#clear
|
||||
private val mapBacklogs = Reference2ObjectOpenHashMap<Map<*, *>, LinkedList<Pair<Any?, (DataOutputStream) -> Unit>>>()
|
||||
@ -475,7 +474,6 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
unused = true
|
||||
mapBacklogs.clear()
|
||||
dirtyFields.clear()
|
||||
dirtyFields2.clear()
|
||||
|
||||
val iterator = endpoints.listIterator()
|
||||
|
||||
@ -501,14 +499,11 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
return
|
||||
}
|
||||
|
||||
if (dirtyFields.add(field)) {
|
||||
dirtyFields2.add(field)
|
||||
}
|
||||
dirtyFields.add(field)
|
||||
}
|
||||
|
||||
internal fun removeDirtyField(field: AbstractField<*>) {
|
||||
dirtyFields.remove(field)
|
||||
dirtyFields2.remove(field)
|
||||
}
|
||||
|
||||
internal fun <K, V> getMapBacklog(map: Map<K, V>): LinkedList<Pair<Any?, (DataOutputStream) -> Unit>> {
|
||||
@ -522,20 +517,19 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
}
|
||||
|
||||
fun collectNetworkPayload(): FastByteArrayOutputStream? {
|
||||
if (unused || dirtyFields2.isEmpty()) {
|
||||
if (unused || dirtyFields.isEmpty()) {
|
||||
return null
|
||||
}
|
||||
|
||||
val stream = FastByteArrayOutputStream()
|
||||
val dataStream = DataOutputStream(stream)
|
||||
|
||||
for (field in dirtyFields2) {
|
||||
for (field in dirtyFields) {
|
||||
stream.writeVarIntLE(field.id)
|
||||
field.write(dataStream, this)
|
||||
}
|
||||
|
||||
dirtyFields.clear()
|
||||
dirtyFields2.clear()
|
||||
stream.write(0)
|
||||
|
||||
return stream
|
||||
|
Loading…
Reference in New Issue
Block a user