summaryrefslogtreecommitdiff
path: root/decode.go
diff options
context:
space:
mode:
Diffstat (limited to 'decode.go')
-rw-r--r--decode.go20
1 files changed, 7 insertions, 13 deletions
diff --git a/decode.go b/decode.go
index 0769bc7..8426526 100644
--- a/decode.go
+++ b/decode.go
@@ -27,8 +27,7 @@ type runeBuffer interface {
}
type Decoder struct {
- io runeTypeScanner
- buf *bufio.Reader
+ io runeTypeScanner
// config
disallowUnknownFields bool
@@ -39,23 +38,18 @@ type Decoder struct {
stack []any
}
-var forceBufio bool // used by the tests to implement .Buffered()
-
func NewDecoder(r io.Reader) *Decoder {
rr, ok := r.(io.RuneReader)
- var ret Decoder
- if forceBufio || !ok {
+ if !ok {
rr = bufio.NewReader(r)
- if forceBufio {
- ret.buf = rr.(*bufio.Reader)
- }
}
- ret.io = &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: rr,
+ return &Decoder{
+ io: &noWSRuneTypeScanner{
+ inner: &runeTypeScannerImpl{
+ inner: rr,
+ },
},
}
- return &ret
}
func (dec *Decoder) DisallowUnknownFields() { dec.disallowUnknownFields = true }