aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/csv/reader.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/encoding/csv/reader.go')
-rw-r--r--src/encoding/csv/reader.go11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/encoding/csv/reader.go b/src/encoding/csv/reader.go
index ca81a41242..37bf80ceae 100644
--- a/src/encoding/csv/reader.go
+++ b/src/encoding/csv/reader.go
@@ -228,16 +228,15 @@ func (r *Reader) parseRecord() (fields []string, err error) {
}
r.r.UnreadRune()
- // If FieldsPerRecord is greater then 0 we can assume the final
- // length of fields to be equal to FieldsPerRecord.
- if r.FieldsPerRecord > 0 {
- fields = make([]string, 0, r.FieldsPerRecord)
- }
-
// At this point we have at least one field.
for {
haveField, delim, err := r.parseField()
if haveField {
+ // If FieldsPerRecord is greater then 0 we can assume the final
+ // length of fields to be equal to FieldsPerRecord.
+ if r.FieldsPerRecord > 0 && fields == nil {
+ fields = make([]string, 0, r.FieldsPerRecord)
+ }
fields = append(fields, r.field.String())
}
if delim == '\n' || err == io.EOF {