public override ObjectData GetObjectData(long row)
 {
     if (m_cache == null)
     {
         m_cache = new ObjectData[Snapshot.nativeObjects.Count];
     }
     if (!m_cache[row].IsValid)
     {
         m_cache[row] = ObjectData.FromNativeObjectIndex(Snapshot, (int)row);
     }
     return(m_cache[row]);
 }
 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]);
 }