public static bool IsSameScopePath(IInstancePath originalRIFObject, IInstancePath lastRIFObject)
        {
            if (null == originalRIFObject != (null == lastRIFObject))
            {
                return(false);
            }
            if (originalRIFObject == null && lastRIFObject == null)
            {
                return(true);
            }
            if (originalRIFObject.Equals(lastRIFObject))
            {
                return(true);
            }
            List <InstancePathItem> instancePath  = originalRIFObject.InstancePath;
            List <InstancePathItem> instancePath2 = lastRIFObject.InstancePath;
            bool flag            = default(bool);
            int  sharedPathIndex = InstancePathItem.GetSharedPathIndex(0, instancePath, instancePath2, false, out flag);

            if (flag)
            {
                return(true);
            }
            if (sharedPathIndex < 0)
            {
                return(false);
            }
            int count  = instancePath.Count;
            int count2 = instancePath2.Count;
            int i      = sharedPathIndex + 1;
            int j      = sharedPathIndex + 1;

            for (; i < count && !instancePath[i].IsScope; i++)
            {
            }
            if (i + 1 == count && instancePath[i].m_indexType == InstancePathItemType.SubReport)
            {
                i = count;
            }
            for (; j < count2 && !instancePath2[j].IsScope; j++)
            {
            }
            if (i == count && j == count2)
            {
                return(true);
            }
            return(false);
        }
        public static bool IsSamePath(List <InstancePathItem> path1, List <InstancePathItem> path2)
        {
            if (null == path1 != (null == path2))
            {
                return(false);
            }
            if (path1 == null && path2 == null)
            {
                return(true);
            }
            if (path1.Count != path2.Count)
            {
                return(false);
            }
            bool result = default(bool);

            InstancePathItem.GetSharedPathIndex(0, path1, path2, false, out result);
            return(result);
        }
        public static int GetSharedPathIndex(int startIndexForNewPath, List <InstancePathItem> oldPath, List <InstancePathItem> newPath)
        {
            bool flag = default(bool);

            return(InstancePathItem.GetSharedPathIndex(startIndexForNewPath, oldPath, newPath, false, out flag));
        }