summaryrefslogtreecommitdiff
path: root/rrdformat/unmarshal_binary.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2020-02-01 09:50:23 -0500
committerLuke Shumaker <lukeshu@lukeshu.com>2020-02-01 09:50:23 -0500
commita14b9983db45f7b20a654d85ca580bc729e20874 (patch)
treee92b7f76d879965c25f01b34b9b23c5a8fd5c872 /rrdformat/unmarshal_binary.go
parent65a401ccf7dd37474868e122393db8bee7ce3c4d (diff)
wip xml
Diffstat (limited to 'rrdformat/unmarshal_binary.go')
-rw-r--r--rrdformat/unmarshal_binary.go12
1 files changed, 9 insertions, 3 deletions
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 {