found another bug that only happens in persistent databases (operationAdded changes an operation, so it needs to be retrieved again after calling it)
This commit is contained in:
parent
3b0d0343f4
commit
f9315288d0
@ -370,13 +370,12 @@ module.exports = function (Y /* :any */) {
|
|||||||
var opid = op.id
|
var opid = op.id
|
||||||
var isGarbageCollected = yield* this.isGarbageCollected(opid)
|
var isGarbageCollected = yield* this.isGarbageCollected(opid)
|
||||||
if (!isGarbageCollected) {
|
if (!isGarbageCollected) {
|
||||||
|
// TODO: reduce number of get / put calls for op ..
|
||||||
yield* Y.Struct[op.struct].execute.call(this, op)
|
yield* Y.Struct[op.struct].execute.call(this, op)
|
||||||
yield* this.addOperation(op)
|
yield* this.addOperation(op)
|
||||||
yield* this.store.operationAdded(this, op)
|
yield* this.store.operationAdded(this, op)
|
||||||
if (!Y.utils.compareIds(opid, op.id)) {
|
// operationAdded can change op..
|
||||||
// operationAdded changed op
|
op = yield* this.getOperation(opid)
|
||||||
op = yield* this.getOperation(opid)
|
|
||||||
}
|
|
||||||
// if insertion, try to combine with left
|
// if insertion, try to combine with left
|
||||||
yield* this.tryCombineWithLeft(op)
|
yield* this.tryCombineWithLeft(op)
|
||||||
}
|
}
|
||||||
@ -440,6 +439,7 @@ module.exports = function (Y /* :any */) {
|
|||||||
// Delete if DS says this is actually deleted
|
// Delete if DS says this is actually deleted
|
||||||
var len = op.content != null ? op.content.length : 1
|
var len = op.content != null ? op.content.length : 1
|
||||||
var startId = op.id // You must not use op.id in the following loop, because op will change when deleted
|
var startId = op.id // You must not use op.id in the following loop, because op will change when deleted
|
||||||
|
// TODO: !! console.log('TODO: change this before commiting')
|
||||||
for (let i = 0; i < len; i++) {
|
for (let i = 0; i < len; i++) {
|
||||||
var id = [startId[0], startId[1] + i]
|
var id = [startId[0], startId[1] + i]
|
||||||
var opIsDeleted = yield* transaction.isDeleted(id)
|
var opIsDeleted = yield* transaction.isDeleted(id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user