|
|
|
@ -510,10 +510,19 @@ impl Rooms { |
|
|
|
|
|
|
|
|
|
|
|
for removed in statediffremoved { |
|
|
|
for removed in statediffremoved { |
|
|
|
if !parent_new.remove(&removed) { |
|
|
|
if !parent_new.remove(&removed) { |
|
|
|
|
|
|
|
// It was not added in the parent and we removed it
|
|
|
|
parent_removed.insert(removed); |
|
|
|
parent_removed.insert(removed); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Else it was added in the parent and we removed it again. We can forget this change
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for new in statediffnew { |
|
|
|
|
|
|
|
if !parent_removed.remove(&new) { |
|
|
|
|
|
|
|
// It was not touched in the parent and we added it
|
|
|
|
|
|
|
|
parent_new.insert(new); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// Else it was removed in the parent and we added it again. We can forget this change
|
|
|
|
} |
|
|
|
} |
|
|
|
parent_new.extend(statediffnew); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.save_state_from_diff( |
|
|
|
self.save_state_from_diff( |
|
|
|
shortstatehash, |
|
|
|
shortstatehash, |
|
|
|
@ -557,11 +566,20 @@ impl Rooms { |
|
|
|
|
|
|
|
|
|
|
|
for removed in statediffremoved { |
|
|
|
for removed in statediffremoved { |
|
|
|
if !parent_new.remove(&removed) { |
|
|
|
if !parent_new.remove(&removed) { |
|
|
|
|
|
|
|
// It was not added in the parent and we removed it
|
|
|
|
parent_removed.insert(removed); |
|
|
|
parent_removed.insert(removed); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Else it was added in the parent and we removed it again. We can forget this change
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for new in statediffnew { |
|
|
|
|
|
|
|
if !parent_removed.remove(&new) { |
|
|
|
|
|
|
|
// It was not touched in the parent and we added it
|
|
|
|
|
|
|
|
parent_new.insert(new); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// Else it was removed in the parent and we added it again. We can forget this change
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
parent_new.extend(statediffnew); |
|
|
|
|
|
|
|
self.save_state_from_diff( |
|
|
|
self.save_state_from_diff( |
|
|
|
shortstatehash, |
|
|
|
shortstatehash, |
|
|
|
parent_new, |
|
|
|
parent_new, |
|
|
|
|