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