NetworkSkins.Data.SegmentDataManager.CleanupData C# (CSharp) 메소드

CleanupData() 개인적인 메소드

Validates the data. Removes data which is no longer used (should never happen).
private CleanupData ( ) : void
리턴 void
        private void CleanupData()
        {
            if (_usedSegmentData != null)
                foreach (var segmentData in _usedSegmentData.ToArray())
                {
                    var segmentMapUsedCount = SegmentToSegmentDataMap.Count(segmentData.Equals);
                    var segmentOptionsUsedCount = _selectedSegmentOptions.Values.Count(segmentData.Equals);
                    var assetOptionsUsedCount = _assetSegmentOptions.Values.Count(segmentData.Equals);
                    var calculatedUsedCount = segmentMapUsedCount + segmentOptionsUsedCount + assetOptionsUsedCount;

                    if (segmentData.UsedCount != calculatedUsedCount)
                    {
                        Debug.LogErrorFormat("Network Skins: Incorrect usedCount detected, should be {0} ({1})", calculatedUsedCount, segmentData);

                        segmentData.UsedCount = calculatedUsedCount;
                        DeleteIfNotInUse(segmentData);
                    }
                }

            // check if data is applied to segments which no longer exist
            if (SegmentToSegmentDataMap != null)
                for (var i = 0; i < SegmentToSegmentDataMap.Length; i++)
                {
                    var segmentData = SegmentToSegmentDataMap[i];

                    if (segmentData != null && NetManager.instance.m_segments.m_buffer[i].m_flags == NetSegment.Flags.None)
                    {
                        Debug.LogErrorFormat("Network Skins: Data was applied to released segment {0}", segmentData);

                        SegmentToSegmentDataMap[i] = null;
                        segmentData.UsedCount--;
                        DeleteIfNotInUse(segmentData);
                    }
                }
        }