From a14b9983db45f7b20a654d85ca580bc729e20874 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 1 Feb 2020 09:50:23 -0500 Subject: wip xml --- rrdformat/unmarshal_binary.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'rrdformat/unmarshal_binary.go') diff --git a/rrdformat/unmarshal_binary.go b/rrdformat/unmarshal_binary.go index bd4c005..67dc4ff 100644 --- a/rrdformat/unmarshal_binary.go +++ b/rrdformat/unmarshal_binary.go @@ -44,10 +44,16 @@ func (rrd *RRD) UnmarshalBinary(data []byte) error { } vals := make([]Value, val_cnt) parsed.Values = vals - for i := range parsed.RRADefs { - parsed.RRADefs[i].Values = vals[:parsed.RRADefs[i].RowCnt*parsed.Header.DSCnt] - vals = vals[parsed.RRADefs[i].RowCnt*parsed.Header.DSCnt:] + // set up some of pointers + for rra_i := range parsed.RRADefs { + parsed.RRADefs[rra_i].CDPPrep = &parsed.CDPPreps[rra_i] + parsed.RRADefs[rra_i].Database = make([][]Value, parsed.RRADefs[rra_i].RowCnt) + for row_i := 0; row_i < int(parsed.RRADefs[rra_i].RowCnt); row_i++ { + parsed.RRADefs[rra_i].Database[row_i] = vals[:parsed.Header.DSCnt] + vals = vals[parsed.Header.DSCnt:] + } } + // resume decoding var lastUpdatedPtr interface{} switch parsed.Header.Version { -- cgit v1.2.3