public override int GetRowValue(long row)
        {
            var obj = m_Table.GetObjectData(row).displayObject;

            switch (obj.dataType)
            {
            case ObjectDataType.ReferenceArray:
            {
                obj = ObjectData.FromManagedPointer(m_Table.Snapshot, obj.GetReferencePointer());
                if (obj.hostManagedObjectPtr != 0)
                {
                    goto case ObjectDataType.Array;
                }
                return(-1);
            }

            case ObjectDataType.Array:
            {
                var arrayInfo = ArrayTools.GetArrayInfo(m_Table.Snapshot, obj.managedObjectData, obj.managedTypeIndex);
                return(arrayInfo.length);
            }

            default:
                return(-1);
            }
        }
Exemple #2
0
 public ArrayInfo GetArrayInfo(CachedSnapshot snapshot)
 {
     if (m_dataType != ObjectDataType.Array)
     {
         UnityEngine.Debug.LogError("Requesting an ArrayInfo on an invalid data type");
         return(null);
     }
     return(ArrayTools.GetArrayInfo(snapshot, managedObjectData, m_data.managed.iType));
 }
Exemple #3
0
        public string RenderArray(ObjectData od)
        {
            ITypeRenderer td;

            if (m_TypeRenderer.TryGetValue(od.managedTypeIndex, out td))
            {
                return(td.Render(m_Snapshot, od));
            }
            var str = RenderPointer(od.hostManagedObjectPtr);

            if (od.hostManagedObjectPtr != 0)
            {
                var arrayInfo = ArrayTools.GetArrayInfo(m_Snapshot, od.managedObjectData, od.managedTypeIndex);
                str += "[" + arrayInfo.ArrayRankToString() + "]";
            }
            return(str);
        }
        public string FormatArray(ObjectData od, IDataFormatter formatter)
        {
            IObjectDataTypeFormatter td;

            if (m_TypeFormatter.TryGetValue(od.managedTypeIndex, out td))
            {
                return(td.Format(m_Snapshot, od, formatter));
            }
            var str = FormatPointer(od.hostManagedObjectPtr);

            if (od.hostManagedObjectPtr != 0)
            {
                var arrayInfo = ArrayTools.GetArrayInfo(m_Snapshot, od.managedObjectData, od.managedTypeIndex);
                str += "[" + arrayInfo.ArrayRankToString() + "]";
            }
            return(str);
        }
        public string FormatArray(ObjectData od, IDataFormatter formatter)
        {
            IObjectDataTypeFormatter td;

            if (m_TypeFormatter.TryGetValue(od.managedTypeIndex, out td))
            {
                return(td.Format(m_Snapshot, od, formatter));
            }

            var originalTypeName = m_Snapshot.typeDescriptions.typeDescriptionName[od.managedTypeIndex];
            var sb = new System.Text.StringBuilder(originalTypeName);



            if (od.hostManagedObjectPtr != 0)
            {
                var arrayInfo = ArrayTools.GetArrayInfo(m_Snapshot, od.managedObjectData, od.managedTypeIndex);
                switch (arrayInfo.rank.Length)
                {
                case 1:
                    int nestedArrayCount = CountArrayOfArrays(originalTypeName);
                    sb.Replace(k_ArrayClosedSqBrackets, string.Empty);
                    sb.Append('[');
                    sb.Append(arrayInfo.ArrayRankToString());
                    sb.Append(']');
                    for (int i = 1; i < nestedArrayCount; ++i)
                    {
                        sb.Append(k_ArrayClosedSqBrackets);
                    }
                    break;

                default:
                    sb.Append('[');
                    sb.Append(arrayInfo.ArrayRankToString());
                    sb.Append(']');
                    break;
                }
            }
            return(sb.ToString());
        }