fix replace with delete

This commit is contained in:
Kevin Jahns
2019-04-05 21:06:43 +02:00
parent 7d0c048708
commit 61d9d96d15
3 changed files with 19 additions and 4 deletions

View File

@@ -12,7 +12,8 @@ import {
YText,
YMap,
YXmlFragment,
YEvent, ItemDeleted, GC, AbstractStruct // eslint-disable-line
ItemDeleted,
YEvent, GC, AbstractStruct // eslint-disable-line
} from '../internals.js'
import { Observable } from 'lib0/observable.js'
@@ -121,7 +122,7 @@ export class Y extends Observable {
if (deleteItem.clock + deleteItem.len < struct.id.clock) {
break
}
if (struct.deleted && struct instanceof AbstractItem) {
if (struct.deleted && struct instanceof AbstractItem && (struct.constructor !== ItemDeleted || (struct.parent._item !== null && struct.parent._item.deleted))) {
// check if we can GC
replacedItems.add(struct.gc(this))
}