public override ObjectData GetObjectData(long row) { if (m_cache == null) { m_cache = new ObjectData[Snapshot.nativeObjects.Count + CrawledData.ManagedObjects.Count]; } if (!m_cache[row].IsValid) { var iNative = Snapshot.UnifiedObjectIndexToNativeObjectIndex((int)row); if (iNative >= 0) { m_cache[row] = ObjectData.FromNativeObjectIndex(Snapshot, iNative); } var iManaged = Snapshot.UnifiedObjectIndexToManagedObjectIndex((int)row); if (iManaged >= 0) { m_cache[row] = ObjectData.FromManagedObjectIndex(Snapshot, iManaged); } } return(m_cache[row]); }