svn commit: r278114 - head/cddl/contrib/opensolaris/lib/libdtrace/common
Mark Johnston
markj at FreeBSD.org
Mon Feb 2 20:48:32 UTC 2015
Author: markj
Date: Mon Feb 2 20:48:31 2015
New Revision: 278114
URL: https://svnweb.freebsd.org/changeset/base/278114
Log:
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
Modified:
head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 2 20:36:16 2015 (r278113)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c Mon Feb 2 20:48:31 2015 (r278114)
@@ -382,6 +382,9 @@ dt_stddev(uint64_t *data, uint64_t norma
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
More information about the svn-src-all
mailing list