You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by al...@apache.org on 2024/01/03 01:05:53 UTC
(datasketches-go) 32/40: Fix bug in serialization
This is an automated email from the ASF dual-hosted git repository.
alsay pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datasketches-go.git
commit 10dcad0954ea6fe7746abedcaabc5e8b49ee5a1b
Author: Pierre Lacave <pi...@datadoghq.com>
AuthorDate: Thu Dec 21 14:28:37 2023 +0100
Fix bug in serialization
---
frequencies/longs_sketch.go | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/frequencies/longs_sketch.go b/frequencies/longs_sketch.go
index 41c6b34..2a0d6b5 100644
--- a/frequencies/longs_sketch.go
+++ b/frequencies/longs_sketch.go
@@ -513,23 +513,29 @@ func (s *LongsSketch) ToSlice() ([]byte, error) {
binary.LittleEndian.PutUint64(outArr, uint64(pre0))
return outArr, nil
}
-
+ pre := int64(0)
pre0 = insertFlags(0, pre0) //Byte 5
preArr := make([]int64, preLongs)
preArr[0] = pre0
- preArr[1] = insertActiveItems(int64(activeItems), pre0)
+ preArr[1] = insertActiveItems(int64(activeItems), pre)
preArr[2] = s.streamWeight
preArr[3] = s.offset
+
for i := 0; i < preLongs; i++ {
binary.LittleEndian.PutUint64(outArr[i<<3:], uint64(preArr[i]))
}
- //now the active items
+
+ preBytes := preLongs << 3
activeValues := s.hashMap.getActiveValues()
+ for i := 0; i < activeItems; i++ {
+ binary.LittleEndian.PutUint64(outArr[preBytes+(i<<3):], uint64(activeValues[i]))
+ }
+
activeKeys := s.hashMap.getActiveKeys()
for i := 0; i < activeItems; i++ {
- binary.LittleEndian.PutUint64(outArr[(preLongs+i)<<3:], uint64(activeValues[i]))
- binary.LittleEndian.PutUint64(outArr[(preLongs+activeItems+i)<<3:], uint64(activeKeys[i]))
+ binary.LittleEndian.PutUint64(outArr[preBytes+((activeItems+i)<<3):], uint64(activeKeys[i]))
}
+
return outArr, nil
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org