Fix possible maximum call stack error
This commit is contained in:
1 parent
63407be19b
commit
eb6d107b8d
1 file changed
+14
-11
+14
-11
@@ -639,6 +639,20 @@ rpcRequest = (sessionData, _declarations, callback) ->
|
|||||||
return rpcRequest(sessionData, null, callback)
|
return rpcRequest(sessionData, null, callback)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not sessionData.declarations[0].length
|
||||||
|
return callback()
|
||||||
|
|
||||||
|
if sessionData.rpcCount >= 255 or
|
||||||
|
sessionData.revisions.length >= 8 or
|
||||||
|
sessionData.iteration >= 128
|
||||||
|
|
||||||
|
fault = {
|
||||||
|
code: 'endless_cycle'
|
||||||
|
message: 'The provision seems to be repeating indefinitely'
|
||||||
|
timestmap: sessionData.timestamp
|
||||||
|
}
|
||||||
|
return callback(null, fault)
|
||||||
|
|
||||||
if (sessionData.syncState?.virtualParameterDeclarations?.length or 0) < sessionData.declarations.length
|
if (sessionData.syncState?.virtualParameterDeclarations?.length or 0) < sessionData.declarations.length
|
||||||
inception = sessionData.syncState?.virtualParameterDeclarations?.length or 0
|
inception = sessionData.syncState?.virtualParameterDeclarations?.length or 0
|
||||||
vpd = runDeclarations(sessionData, sessionData.declarations[inception])
|
vpd = runDeclarations(sessionData, sessionData.declarations[inception])
|
||||||
@@ -672,17 +686,6 @@ rpcRequest = (sessionData, _declarations, callback) ->
|
|||||||
if not sessionData.syncState?
|
if not sessionData.syncState?
|
||||||
return callback()
|
return callback()
|
||||||
|
|
||||||
if sessionData.rpcCount >= 255 or
|
|
||||||
sessionData.revisions.length >= 8 or
|
|
||||||
sessionData.iteration >= 64
|
|
||||||
|
|
||||||
fault = {
|
|
||||||
code: 'endless_cycle'
|
|
||||||
message: 'The provision seems to be repeating indefinitely'
|
|
||||||
timestmap: sessionData.timestamp
|
|
||||||
}
|
|
||||||
return callback(null, fault)
|
|
||||||
|
|
||||||
inception = sessionData.declarations.length - 1
|
inception = sessionData.declarations.length - 1
|
||||||
|
|
||||||
provisions = generateGetVirtualParameterProvisions(sessionData, sessionData.syncState.virtualParameterDeclarations[inception])
|
provisions = generateGetVirtualParameterProvisions(sessionData, sessionData.syncState.virtualParameterDeclarations[inception])
|
||||||
|
|||||||
Reference in new issue
Block a user