private unsafe void PrepareForClose()

in Microsoft.Shared.Dna.Json/JsonParser.cs [1013:1060]


        private unsafe void PrepareForClose(char* payloadPointer, bool any)
        {
            Container current = this.Current;
            this.EatWhitespace(payloadPointer);
            if (this.position >= this.payloadLength)
            {
                if (this.Current.TokenType == JsonTokenType.None)
                {
                    this.close = true;
                }
                else
                {
                    this.CreateInvalidToken();
                }

                return;
            }

            char c = *(payloadPointer + this.position);
            switch (current.TokenType)
            {
                case JsonTokenType.BeginArray:
                    if (c == JsonConstants.ArrayFooter)
                    {
                        this.close = true;
                    }
                    else
                    {
                        this.EatElementSeparator(payloadPointer, any);
                    }

                    break;
                case JsonTokenType.BeginObject:
                    if (c == JsonConstants.ObjectFooter)
                    {
                        this.close = true;
                    }
                    else
                    {
                        this.EatElementSeparator(payloadPointer, any);
                    }

                    break;
                case JsonTokenType.BeginProperty:
                    this.close = true;
                    break;
            }
        }