Fixed bug that only occurs in persistent databases (setOperation was not called).

This commit is contained in:
Kevin Jahns 2016-08-01 16:52:02 +02:00
parent 63f8a891be
commit 74c881bb5b
3 changed files with 6 additions and 6 deletions

View File

@ -4,7 +4,7 @@
module.exports = function (Y) { module.exports = function (Y) {
var globalRoom = { var globalRoom = {
users: {}, users: {},
buffers: {}, // TODO: reimplement this idea. This does not cover all cases!! Here, you have a queue which is unrealistic (i.e. think about multiple incoming connections) buffers: {},
removeUser: function (user) { removeUser: function (user) {
for (var i in this.users) { for (var i in this.users) {
this.users[i].userLeft(user) this.users[i].userLeft(user)

View File

@ -11,6 +11,7 @@ require('../../y-memory/src/Memory.js')(Y)
require('../../y-array/src/Array.js')(Y) require('../../y-array/src/Array.js')(Y)
require('../../y-map/src/Map.js')(Y) require('../../y-map/src/Map.js')(Y)
require('../../y-indexeddb/src/IndexedDB.js')(Y) require('../../y-indexeddb/src/IndexedDB.js')(Y)
require('../../y-leveldb/src/LevelDB.js')(Y)
module.exports = Y module.exports = Y
var g var g
@ -28,7 +29,7 @@ Math.seedrandom = require('seedrandom')
g.generateRandomSeed = function generateRandomSeed() { g.generateRandomSeed = function generateRandomSeed() {
var seed var seed
if (window.location.hash.length > 1) { if (typeof window != 'undefined' && window.location.hash.length > 1) {
seed = window.location.hash.slice(1) // first character is the hash! seed = window.location.hash.slice(1) // first character is the hash!
console.warn('Using random seed that was specified in the url!') console.warn('Using random seed that was specified in the url!')
} else { } else {
@ -74,6 +75,8 @@ g.wait = wait
g.databases = ['memory'] g.databases = ['memory']
if (typeof window !== 'undefined') { if (typeof window !== 'undefined') {
g.databases.push('indexeddb') g.databases.push('indexeddb')
} else {
g.databases.push('leveldb')
} }
/* /*
returns a random element of o. returns a random element of o.

View File

@ -502,6 +502,7 @@ module.exports = function (Y/* :any */) {
if (o.right != null) { if (o.right != null) {
var right = yield* this.getOperation(o.right) var right = yield* this.getOperation(o.right)
right.left = o.left right.left = o.left
yield* this.setOperation(right)
if (o.originOf != null && o.originOf.length > 0) { if (o.originOf != null && o.originOf.length > 0) {
// find new origin of right ops // find new origin of right ops
@ -568,10 +569,6 @@ module.exports = function (Y/* :any */) {
} }
// we don't need to set right here, because // we don't need to set right here, because
// right should be in o.originOf => it is set it the previous for loop // right should be in o.originOf => it is set it the previous for loop
} else {
// we didn't need to reset the origin of right
// so we have to set right here
yield* this.setOperation(right)
} }
} }
// o may originate in another operation. // o may originate in another operation.