Пример #1
0
        /// <summary>Each RuleLink has a level of recursive calls to stop infite loops.</summary>
        /// <param name="link">The RuleLink.</param>
        /// <returns>Loop level.</returns>
        internal LoopLevel GetLoopLoad(RuleLink link)
        {
            LoopLevel level;

            if (!_recursiveLoad.TryGetValue(link, out level))
            {
                level = new LoopLevel()
                {
                    LastInvokePos = NotValidPtr
                };
                _recursiveLoad.Add(link, level);
            }
            return(level);
        }
Пример #2
0
        internal LoopLevel GetLoopLast(RuleLink link)
        {
            if (link == null)
            {
                _recursiveLast.Clear();
                return(null);
            }

            LoopLevel level;

            if (!_recursiveLast.TryGetValue(link, out level))
            {
                level = new LoopLevel()
                {
                    LastInvokePos = NotValidPtr
                };
                _recursiveLast.Add(link, level);
            }
            return(level);
        }