diff options
author | Mark Johnston <markj@FreeBSD.org> | 2015-02-02 20:48:31 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2015-02-02 20:48:31 +0000 |
commit | 6ac0e4858ac60dfade25336c0164d11c5a49d7e1 (patch) | |
tree | 2e4bcfee47df06ba8662139a7ad342320138d586 /cddl/contrib/opensolaris/lib | |
parent | 174b32ced4be75344530fcbd5d56bb49c5250401 (diff) | |
download | src-6ac0e4858ac60dfade25336c0164d11c5a49d7e1.tar.gz src-6ac0e4858ac60dfade25336c0164d11c5a49d7e1.zip |
Let the standard deviation of the empty set be 0. This is consistent with
the behaviour for averages, and fixes a crash that can occur when attempting
to print a stddev aggregation containing no elements:
dtrace:::BEGIN { @ = stddev(0); clear(@); printa("%@d", @); }
PR: 197260
MFC after: 2 week
Notes
Notes:
svn path=/head/; revision=278114
Diffstat (limited to 'cddl/contrib/opensolaris/lib')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c index 7eae3986e93a..da804eef87b5 100644 --- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c +++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c @@ -382,6 +382,9 @@ dt_stddev(uint64_t *data, uint64_t normal) int64_t norm_avg; uint64_t diff[2]; + if (data[0] == 0) + return (0); + /* * The standard approximation for standard deviation is * sqrt(average(x**2) - average(x)**2), i.e. the square root |