From 03198c104eb58757da28b9972336714dd8180baa Mon Sep 17 00:00:00 2001 From: Paul R Date: Wed, 31 May 2017 08:50:43 +0000 Subject: [PATCH] parsing the AlgoParams.Params in response to an algo order seem to be trying to write to a nil pointer. To correct it, read the values from input and create the TagValue object to go into the array --- ereader.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ereader.go b/ereader.go index 0bc25e6..e5216ea 100644 --- a/ereader.go +++ b/ereader.go @@ -919,13 +919,19 @@ func (o *OpenOrder) read(b *bufio.Reader) (err error) { return err } o.Order.AlgoParams.Params = make([]*TagValue, algoParamsCount) - for _, p := range o.Order.AlgoParams.Params { - if p.Tag, err = readString(b); err != nil { + for indx, _ := range o.Order.AlgoParams.Params { + //at this point Params is a slice of nil pointers + // so read the tag and value from the input + // and create a TagValue to put in the slice + tag, err := readString(b) + if err != nil { return err } - if p.Value, err = readString(b); err != nil { + value, err := readString(b) + if err != nil { return err } + o.Order.AlgoParams.Params[indx] = &TagValue{Tag: tag, Value: value} } } if o.Order.WhatIf, err = readBool(b); err != nil {