internal static double ReadVarDouble(BinaryReader reader) { var input = reader.ReadByte(); var buff = SharedArray.Get(); var embedded = (input & FlagEmbedded) == FlagEmbedded; if (embedded) { SharedArray.ClearArray8(); // last byte buff[7] = (byte)(input & MaskEmbedded); return(BitConverter.ToDouble(buff, 0)); } int length = input; if (length < 8) { SharedArray.ClearArray8(); } reader.Read(buff, 8 - length, length); return(BitConverter.ToDouble(buff, 0)); }