summaryrefslogtreecommitdiff
path: root/rrdformat/unmarshal_binary.go
diff options
context:
space:
mode:
Diffstat (limited to 'rrdformat/unmarshal_binary.go')
-rw-r--r--rrdformat/unmarshal_binary.go11
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 {