public void ClearRepeatingGroupStorage()

in FixAntenna/NetCore/Message/Rg/RepeatingGroupStorage.cs [187:248]


		public void ClearRepeatingGroupStorage()
		{
			if (!IsInvalidated)
			{
				if (_rgArray != null)
				{
					for (var i = 0; i < _rgArray.Length; i++)
					{
						if (_rgArray[i] != null)
						{
							RepeatingGroupStorageIntArrayPool.ReturnObj(_rgArray[i]);
						}
					}

					RepeatingGroupStorageIntArrayPool.ReturnObj(_rgArray);
					_rgArray = null;

					if (_rgArrayManager != null)
					{
						_rgArrayManager.SetRgArray(null);
					}
				}

				if (_entries != null)
				{
					int[] entry;
					for (var i = 0; i < _entries.Length && (entry = _entries[i]) != null; i++)
					{
						RepeatingGroupStorageIntArrayPool.ReturnObj(entry);
					}

					RepeatingGroupStorageIntArrayPool.ReturnObj(_entries);
					if (_entriesArray != null)
					{
						_entriesArray.SetEntries(null);
					}
				}

				for (var i = 0; i < _allocatedGroups.Count; i++)
				{
					RepeatingGroupPool.ReturnObj(_allocatedGroups[i]);
				}

				if (_hiddenLeadingTags != null)
				{
					RepeatingGroupStorageIntArrayPool.ReturnObj(_hiddenLeadingTags);
					_hiddenLeadingTags = null;
					_hiddenLeadingTagsArray.SetHiddenLeadingTags(null);
				}

				_allocatedGroups.Clear();
				_entries = null;
				_stash.Clear();
				_rgCount = 0;
				_lastEntryPointer = -1;
				_entryCreating = false;
				_rgId = 0;
				_currentEntry = -1;
				_rgCreating = false;
				IsInvalidated = true;
			}
		}