Fix bug where values of vparams get mixed up
This commit is contained in:
1 parent
09b3d7cb1c
commit
dc5c12c8ce
1 file changed
+20
-22
+20
-22
@@ -346,14 +346,14 @@ runProvisions = (sessionContext, provisions, startRevision, endRevision, callbac
|
|||||||
allClear = []
|
allClear = []
|
||||||
counter = 3
|
counter = 3
|
||||||
allProvisions = provisionsCache.get(sessionContext)
|
allProvisions = provisionsCache.get(sessionContext)
|
||||||
for provision in provisions
|
for provision, j in provisions
|
||||||
if not allProvisions[provision[0]]?
|
if not allProvisions[provision[0]]?
|
||||||
if defaultProvisions[provision[0]]
|
if defaultProvisions[provision[0]]
|
||||||
done = defaultProvisions[provision[0]](sessionContext, provision, allDeclarations, startRevision, endRevision) and done
|
done = defaultProvisions[provision[0]](sessionContext, provision, allDeclarations[j] = [], startRevision, endRevision) and done
|
||||||
continue
|
continue
|
||||||
|
|
||||||
counter += 2
|
counter += 2
|
||||||
sandbox.run(allProvisions[provision[0]].script,
|
do (j) -> sandbox.run(allProvisions[provision[0]].script,
|
||||||
{args: provision.slice(1)}, sessionContext, startRevision, endRevision,
|
{args: provision.slice(1)}, sessionContext, startRevision, endRevision,
|
||||||
(err, _fault, _clear, _declarations, _done) ->
|
(err, _fault, _clear, _declarations, _done) ->
|
||||||
if err or _fault
|
if err or _fault
|
||||||
@@ -361,18 +361,18 @@ runProvisions = (sessionContext, provisions, startRevision, endRevision, callbac
|
|||||||
return counter = 0
|
return counter = 0
|
||||||
|
|
||||||
done &&= _done
|
done &&= _done
|
||||||
|
allDeclarations[j] = _declarations or []
|
||||||
if _declarations.length
|
allClear[j] = _clear or []
|
||||||
allDeclarations = allDeclarations.concat(_declarations)
|
|
||||||
|
|
||||||
if _clear.length
|
|
||||||
allClear = allClear.concat(_clear)
|
|
||||||
|
|
||||||
if (counter -= 2) == 1
|
if (counter -= 2) == 1
|
||||||
|
allDeclarations = Array.prototype.concat.apply([], allDeclarations)
|
||||||
|
allClear = Array.prototype.concat.apply([], allClear)
|
||||||
return callback(null, null, done, allDeclarations, allClear)
|
return callback(null, null, done, allDeclarations, allClear)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (counter -= 2) == 1
|
if (counter -= 2) == 1
|
||||||
|
allDeclarations = Array.prototype.concat.apply([], allDeclarations)
|
||||||
|
allClear = Array.prototype.concat.apply([], allClear)
|
||||||
return callback(null, null, done, allDeclarations, allClear)
|
return callback(null, null, done, allDeclarations, allClear)
|
||||||
|
|
||||||
|
|
||||||
@@ -383,10 +383,10 @@ runVirtualParameters = (sessionContext, provisions, startRevision, endRevision,
|
|||||||
allClear = []
|
allClear = []
|
||||||
counter = 3
|
counter = 3
|
||||||
allVirtualParameters = virtualParametersCache.get(sessionContext)
|
allVirtualParameters = virtualParametersCache.get(sessionContext)
|
||||||
for provision in provisions
|
for provision, j in provisions
|
||||||
counter += 2
|
counter += 2
|
||||||
globals = {TIMESTAMPS: provision[1], VALUES: provision[2]}
|
globals = {TIMESTAMPS: provision[1], VALUES: provision[2]}
|
||||||
sandbox.run(allVirtualParameters[provision[0]].script, globals,
|
do (j) -> sandbox.run(allVirtualParameters[provision[0]].script, globals,
|
||||||
sessionContext, startRevision, endRevision,
|
sessionContext, startRevision, endRevision,
|
||||||
(err, _fault, _clear, _declarations, _done, _returnValue) ->
|
(err, _fault, _clear, _declarations, _done, _returnValue) ->
|
||||||
if err or _fault
|
if err or _fault
|
||||||
@@ -394,34 +394,32 @@ runVirtualParameters = (sessionContext, provisions, startRevision, endRevision,
|
|||||||
return counter = 0
|
return counter = 0
|
||||||
|
|
||||||
done &&= _done
|
done &&= _done
|
||||||
|
allDeclarations[j] = _declarations or []
|
||||||
if _declarations.length
|
allClear[j] = _clear or []
|
||||||
allDeclarations = allDeclarations.concat(_declarations)
|
virtualParameterUpdates[j] = _returnValue if _done
|
||||||
|
|
||||||
if _clear.length
|
|
||||||
allClear = allClear.concat(_clear)
|
|
||||||
|
|
||||||
if _done
|
|
||||||
virtualParameterUpdates.push(_returnValue)
|
|
||||||
|
|
||||||
if (counter -= 2) == 1
|
if (counter -= 2) == 1
|
||||||
toClear = null
|
toClear = null
|
||||||
if virtualParameterUpdates.length == provisions.length
|
if done
|
||||||
for vpu, i in virtualParameterUpdates
|
for vpu, i in virtualParameterUpdates
|
||||||
toClear = commitVirtualParameter(sessionContext, provisions[i], vpu, toClear)
|
toClear = commitVirtualParameter(sessionContext, provisions[i], vpu, toClear)
|
||||||
|
|
||||||
clear(sessionContext, toClear, (err) ->
|
clear(sessionContext, toClear, (err) ->
|
||||||
|
allDeclarations = Array.prototype.concat.apply([], allDeclarations)
|
||||||
|
allClear = Array.prototype.concat.apply([], allClear)
|
||||||
return callback(err, null, done, allDeclarations, allClear)
|
return callback(err, null, done, allDeclarations, allClear)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if (counter -= 2) == 1
|
if (counter -= 2) == 1
|
||||||
toClear = null
|
toClear = null
|
||||||
if virtualParameterUpdates.length == provisions.length
|
if done
|
||||||
for vpu, i in virtualParameterUpdates
|
for vpu, i in virtualParameterUpdates
|
||||||
toClear = commitVirtualParameter(sessionContext, provisions[i], vpu, toClear)
|
toClear = commitVirtualParameter(sessionContext, provisions[i], vpu, toClear)
|
||||||
|
|
||||||
clear(sessionContext, toClear, (err) ->
|
clear(sessionContext, toClear, (err) ->
|
||||||
|
allDeclarations = Array.prototype.concat.apply([], allDeclarations)
|
||||||
|
allClear = Array.prototype.concat.apply([], allClear)
|
||||||
return callback(err, null, done, allDeclarations, allClear)
|
return callback(err, null, done, allDeclarations, allClear)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user