Exemple #1
0
        internal int AddObjectToTable(IPlistElement obj)
        {
            if (obj.ElementType == PlistElementType.Array ||
                obj.ElementType == PlistElementType.Dictionary)
            {
                // Don't compare these; Assume all arrays and dictionaries are unique
                objOffsets.Add(this.BaseStream.Position);
                objects.Add(obj);
                return(objects.Count);
            }

            for (int i = 0; i < objects.Count; i++)
            {
                IPlistElement testAgainst = objects[i];
                if (obj.Equals(objects[i]))
                {
                    return(i);
                }
            }

            // this object is unique
            objOffsets.Add(this.BaseStream.Position);
            objects.Add(obj);
            return(objects.Count);
        }