/// <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); }
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); }