public bool Repopulate()
        {
            Profiler.BeginSample("SerializedPropertyDataStore.Repopulate.GatherDelegate");
            var array = m_gatherDel();

            Profiler.EndSample();
            if (m_objects != null)
            {
                if (array.Length == m_objects.Length &&
                    ArrayUtility.ArrayReferenceEquals(array, m_objects))
                {
                    return(false);
                }
                Clear();
            }
            m_objects  = array;
            m_elements = new Data[array.Length];
            for (var i = 0; i < array.Length; i++)
            {
                m_elements[i] = new Data(array[i], m_propNames);
            }
            return(true);
        }