コード例 #1
0
        internal virtual void GetStrings(sbyte *path, int pathLen, RSAREntryList list)
        {
            int len = _name.Length;
            int i   = 0;

            if (len == 0)
            {
                return;
            }

            len += pathLen + ((pathLen != 0) ? 1 : 0);

            sbyte *chars = stackalloc sbyte[len];

            if (pathLen > 0)
            {
                while (i < pathLen)
                {
                    chars[i++] = *path++;
                }
                chars[i++] = (sbyte)'_';
            }

            fixed(char *s = _name)
            for (int x = 0; i < len;)
            {
                chars[i++] = (sbyte)s[x++];
            }

            list.AddEntry(_fullPath = len != 0 ? new String(chars, 0, len) : "", this);
        }
コード例 #2
0
        internal virtual void GetStrings(sbyte* path, int pathLen, RSAREntryList list)
        {
            int len = _name.Length;
            int i = 0;
            if (len == 0)
                return;

            len += pathLen + ((pathLen != 0) ? 1 : 0);

            sbyte* chars = stackalloc sbyte[len];

            if (pathLen > 0)
            {
                while (i < pathLen)
                    chars[i++] = *path++;
                chars[i++] = (sbyte)'_';
            }

            fixed (char* s = _name)
                for (int x = 0; i < len; )
                    chars[i++] = (sbyte)s[x++];

            if (len != 0)
                _fullPath = new String(chars, 0, len);
            else
                _fullPath = "";

            list.AddEntry(_fullPath, this);
        }