When the number of time steps is lower than the requested number of X values,
only those steps will be returned.
Change-Id: I94c877906083584546d4921e2bd90d82b5e72c49
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/69546
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
/**
* Convenience method to compute the values of the X axis for a given time
/**
* Convenience method to compute the values of the X axis for a given time
- * range. This method will return nb values depending, equally separated
- * from start to end.
+ * range. This method will return at most nb values, equally separated from
+ * start to end. The step between values will be at least 1.0, so the number
+ * of values returned can be lower than nb.
*
* The returned time values are in internal time, ie to get trace time, the
* time offset needs to be added to those values.
*
* The returned time values are in internal time, ie to get trace time, the
* time offset needs to be added to those values.
* @param end
* End time of the range
* @param nb
* @param end
* End time of the range
* @param nb
- * The number of steps in the x axis.
+ * The maximum number of steps in the x axis.
* @return The time values (converted to double) to match every step.
*/
protected static final double[] getXAxis(long start, long end, int nb) {
* @return The time values (converted to double) to match every step.
*/
protected static final double[] getXAxis(long start, long end, int nb) {
-
- double timestamps[] = new double[nb];
long steps = (end - start);
long steps = (end - start);
- double step = steps / (double) nb;
+ int nbVals = nb;
+ if (steps < nb) {
+ nbVals = (int) steps;
+ if (nbVals <= 0) {
+ nbVals = 1;
+ }
+ }
+ double step = steps / (double) nbVals;
+ double timestamps[] = new double[nbVals];
- for (int i = 0; i < nb; i++) {
+ for (int i = 0; i < nbVals; i++) {
timestamps[i] = curTime;
curTime += step;
}
timestamps[i] = curTime;
curTime += step;
}