@@ -19,7 +19,6 @@ public class ParsingContext
1919 private readonly Stack < string > _currentLocation = new ( ) ;
2020 private readonly Dictionary < string , object > _tempStorage = new ( ) ;
2121 private readonly Dictionary < object , Dictionary < string , object > > _scopedTempStorage = new ( ) ;
22- private readonly Dictionary < string , Stack < string > > _loopStacks = new ( ) ;
2322
2423 /// <summary>
2524 /// Extension parsers
@@ -219,53 +218,6 @@ public void StartObject(string objectName)
219218 {
220219 _currentLocation . Push ( objectName ) ;
221220 }
222-
223- /// <summary>
224- /// Maintain history of traversals to avoid stack overflows from cycles
225- /// </summary>
226- /// <param name="loopId">Any unique identifier for a stack.</param>
227- /// <param name="key">Identifier used for current context.</param>
228- /// <returns>If method returns false a loop was detected and the key is not added.</returns>
229- public bool PushLoop ( string loopId , string key )
230- {
231- if ( ! _loopStacks . TryGetValue ( loopId , out var stack ) )
232- {
233- stack = new ( ) ;
234- _loopStacks . Add ( loopId , stack ) ;
235- }
236-
237- if ( ! stack . Contains ( key ) )
238- {
239- stack . Push ( key ) ;
240- return true ;
241- }
242- else
243- {
244- return false ; // Loop detected
245- }
246- }
247-
248- /// <summary>
249- /// Reset loop tracking stack
250- /// </summary>
251- /// <param name="loopid">Identifier of loop to clear</param>
252- internal void ClearLoop ( string loopid )
253- {
254- _loopStacks [ loopid ] . Clear ( ) ;
255- }
256-
257- /// <summary>
258- /// Exit from the context in cycle detection
259- /// </summary>
260- /// <param name="loopid">Identifier of loop</param>
261- public void PopLoop ( string loopid )
262- {
263- if ( _loopStacks [ loopid ] . Count > 0 )
264- {
265- _loopStacks [ loopid ] . Pop ( ) ;
266- }
267- }
268-
269221 private void ValidateRequiredFields ( OpenApiDocument doc , string version )
270222 {
271223 if ( ( version . is2_0 ( ) || version . is3_0 ( ) ) && ( doc . Paths == null ) && RootNode is not null )
0 commit comments