tmf: Bug 470741: Missing lost events in scaled histogram buckets
authorPatrick Tasse <patrick.tasse@gmail.com>
Mon, 22 Jun 2015 18:09:34 +0000 (14:09 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Tue, 30 Jun 2015 14:29:01 +0000 (10:29 -0400)
Change-Id: I8cf2c1a977845c9a60026178940bb09e75206b4c
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/50659
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
tmf/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/histogram/HistogramDataModel.java

index 9abce76b972169068454917a258d9c601c040fb5..cdccd7c339501260ec2e9e2a6b3396ec8683e77b 100644 (file)
@@ -657,7 +657,8 @@ public class HistogramDataModel implements IHistogramDataModel {
             final int scaledEnd = Math.min((int) (doneNext * nbBars) - offset, nbBars - 1);
             int scaledIndex = scaledStart;
             final HistogramBucket currentModelBucket = fBuckets[modelIndex];
-            if (currentModelBucket != null) {
+            final long lostEvents = fLostEventsBuckets[modelIndex];
+            if (currentModelBucket != null || lostEvents != 0) {
                 do {
                     // Make sure last model bucket counted in last scaled index
                     scaledIndex = Math.min(scaledIndex, nbBars - 1);
@@ -665,19 +666,17 @@ public class HistogramDataModel implements IHistogramDataModel {
                         scaledCount = 0;
                         scaledCountLostEvent = 0;
                     }
-                    result.fData[scaledIndex].add(currentModelBucket);
-                    result.fLostEventsData[scaledIndex] += fLostEventsBuckets[modelIndex];
-                    scaledCountLostEvent += fLostEventsBuckets[modelIndex];
-                    scaledCount += currentModelBucket.getNbEvents();
-                    if (!currentModelBucket.isEmpty()) {
-                        result.fLastBucket = scaledIndex;
-                    }
-                    if (result.fMaxValue < scaledCount) {
-                        result.fMaxValue = scaledCount;
-                    }
-                    if (result.fMaxCombinedValue < scaledCount + scaledCountLostEvent) {
-                        result.fMaxCombinedValue = scaledCount + scaledCountLostEvent;
+                    if (currentModelBucket != null) {
+                        result.fData[scaledIndex].add(currentModelBucket);
+                        scaledCount += currentModelBucket.getNbEvents();
+                        if (!currentModelBucket.isEmpty()) {
+                            result.fLastBucket = scaledIndex;
+                        }
                     }
+                    result.fLostEventsData[scaledIndex] += lostEvents;
+                    scaledCountLostEvent += lostEvents;
+                    result.fMaxValue = Math.max(result.fMaxValue, scaledCount);
+                    result.fMaxCombinedValue = Math.max(result.fMaxCombinedValue, scaledCount + scaledCountLostEvent);
                     scaledIndex++;
                 } while (scaledIndex < scaledEnd);
             }
This page took 0.025667 seconds and 5 git commands to generate.