static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }
static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }
static void setMsgIdx(StackStateWalker rw, int idx, long llwHeadPosCache) { rw.msgIdxPrev = rw.msgIdx; rw.msgIdx = idx; assert(idx < rw.from.fragDataSize.length) : "Bad msgIdx out of range"; assert(idx>-3): "Bad msgIdx too small "; assert(isMsgIdxStartNewMessage(idx, rw)) : "Bad msgIdx is not a starting point. "; //This validation is very important, because all down stream consumers will assume it to be true. assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || TypeMask.Group == TokenBuilder.extractType(rw.from.tokens[rw.msgIdx])) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); assert(-1 ==idx || (rw.from.hasSimpleMessagesOnly && 0==rw.msgIdx && rw.from.messageStarts.length==1) || (OperatorMask.Group_Bit_Close&TokenBuilder.extractOper(rw.from.tokens[rw.msgIdx])) == 0) : errorMessageForMessageStartValidation(rw, llwHeadPosCache); }