Exemple #1
0
        private static int IndexOfNull <TValue>(
            byte[] buffer,
            int index,
            int count,
            ref BsonTrieNode <TValue> bsonTrieNode)
        {
            for (; count > 0; index++, count--)
            {
                // bsonTrieNode might be null on entry or it might become null while navigating the trie
                if (bsonTrieNode == null)
                {
                    return(Array.IndexOf <byte>(buffer, 0, index, count));
                }

                var keyByte = buffer[index];
                if (keyByte == 0)
                {
                    return(index);
                }

                bsonTrieNode = bsonTrieNode.GetChild(keyByte); // might return null
            }

            return(-1);
        }