diff options
Diffstat (limited to 'rrdformat/unmarshal_binary.go')
-rw-r--r-- | rrdformat/unmarshal_binary.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/rrdformat/unmarshal_binary.go b/rrdformat/unmarshal_binary.go index 923ccb1..bd4c005 100644 --- a/rrdformat/unmarshal_binary.go +++ b/rrdformat/unmarshal_binary.go @@ -8,8 +8,8 @@ import ( ) type RRD struct { - Architecture rrdbinary.Architecture - Data RRDv0005 + Architecture rrdbinary.Architecture `xml:"-"` + Data RRDv0005 `xml:",innerxml"` } func (rrd *RRD) UnmarshalBinary(data []byte) error { @@ -42,7 +42,12 @@ func (rrd *RRD) UnmarshalBinary(data []byte) error { for i := range parsed.RRADefs { val_cnt += int(parsed.RRADefs[i].RowCnt * parsed.Header.DSCnt) } - parsed.Values = make([]RRDValue, val_cnt) + 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:] + } // resume decoding var lastUpdatedPtr interface{} switch parsed.Header.Version { |