public SerializerState(SerializationSettings settings, SerializerState previousState)
            {
                this.PreviousState = previousState;

                this.Settings         = settings;
                this.Buffer           = BufferPool.Retain();
                this.ObjectReferences = new Dictionary <object, int>();
                this.ObjectInstances  = new List <object>();

                this.IsText           = Settings.Flags.HasFlag(SerializationFlags.Text);
                this.WriteOnlyChanged = settings.Flags.HasFlag(SerializationFlags.WriteOnlyChanged);
                this.LocalOffset      = Int32.MaxValue;
                Retain();
            }