You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by jm...@apache.org on 2022/01/05 00:42:10 UTC
[datasketches-cpp] 01/01: Addresses segfault described in issue #256
This is an automated email from the ASF dual-hosted git repository.
jmalkin pushed a commit to branch req_fix
in repository https://gitbox.apache.org/repos/asf/datasketches-cpp.git
commit 227528fbf9377d67317c78d93b61b9ba5cf7e05c
Author: Jon Malkin <jm...@users.noreply.github.com>
AuthorDate: Tue Jan 4 16:41:31 2022 -0800
Addresses segfault described in issue #256
---
req/include/req_sketch_impl.hpp | 1 +
req/test/req_sketch_test.cpp | 4 ++++
2 files changed, 5 insertions(+)
diff --git a/req/include/req_sketch_impl.hpp b/req/include/req_sketch_impl.hpp
index 7648546..91570e2 100755
--- a/req/include/req_sketch_impl.hpp
+++ b/req/include/req_sketch_impl.hpp
@@ -210,6 +210,7 @@ template<typename T, typename C, typename S, typename A>
template<bool inclusive>
auto req_sketch<T, C, S, A>::get_PMF(const T* split_points, uint32_t size) const -> vector_double {
auto buckets = get_CDF<inclusive>(split_points, size);
+ if (is_empty()) return buckets;
for (uint32_t i = size; i > 0; --i) {
buckets[i] -= buckets[i - 1];
}
diff --git a/req/test/req_sketch_test.cpp b/req/test/req_sketch_test.cpp
index a301a04..0d2da32 100755
--- a/req/test/req_sketch_test.cpp
+++ b/req/test/req_sketch_test.cpp
@@ -51,6 +51,10 @@ TEST_CASE("req sketch: empty", "[req_sketch]") {
REQUIRE(std::isnan(sketch.get_quantile(1)));
const double ranks[3] {0, 0.5, 1};
REQUIRE(sketch.get_quantiles(ranks, 3).size() == 0);
+
+ const float split_points[1] {0};
+ REQUIRE(sketch.get_CDF(split_points, 1).empty());
+ REQUIRE(sketch.get_PMF(split_points, 1).empty());
}
TEST_CASE("req sketch: single value, lra", "[req_sketch]") {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org