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); }
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); }