summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authornduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 21:02:49 +0000
committernduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-20 21:02:49 +0000
commit754241ba2cf4e5b4a508e42a78c0283a924901c4 (patch)
treed855822ec239afeb75041d297a77b11220cfd622 /chrome
parent32b6150c19c0fca0bef5c3dceda12dd39b96470a (diff)
downloadchromium_src-754241ba2cf4e5b4a508e42a78c0283a924901c4.zip
chromium_src-754241ba2cf4e5b4a508e42a78c0283a924901c4.tar.gz
chromium_src-754241ba2cf4e5b4a508e42a78c0283a924901c4.tar.bz2
Fix duplicate insertion of async slices in subrow generation.
Review URL: http://codereview.chromium.org/9726021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127776 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/resources/tracing/timeline_model.js1
-rw-r--r--chrome/browser/resources/tracing/timeline_model_test.html17
2 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/resources/tracing/timeline_model.js b/chrome/browser/resources/tracing/timeline_model.js
index a309f17..73cfe0b 100644
--- a/chrome/browser/resources/tracing/timeline_model.js
+++ b/chrome/browser/resources/tracing/timeline_model.js
@@ -530,6 +530,7 @@ cr.define('tracing', function() {
if (slice.start >= lastSliceInSubRow.end) {
found = true;
subRow.push(slice);
+ break;
}
}
if (!found) {
diff --git a/chrome/browser/resources/tracing/timeline_model_test.html b/chrome/browser/resources/tracing/timeline_model_test.html
index 136211c..22e5033 100644
--- a/chrome/browser/resources/tracing/timeline_model_test.html
+++ b/chrome/browser/resources/tracing/timeline_model_test.html
@@ -201,6 +201,23 @@ function testAsyncSliceGroup_rebuildSubRows_threePartlyOverlappingSlices() {
assertEquals(g.slices[1], g.subRows[1][0]);
}
+function testAsyncSliceGroup_rebuildSubRows_twoOverlappingSlices() {
+ var p1 = new TimelineProcess(1);
+ var t1 = new TimelineThread(p1, 1);
+ var g = new TimelineAsyncSliceGroup('a');
+ g.slices.push(newAsyncSlice(0, 1, t1, t1));
+ g.slices.push(newAsyncSlice(0, 1.5, t1, t1));
+ g.slices.push(newAsyncSlice(2, 1, t1, t1));
+ g.updateBounds();
+
+ assertEquals(2, g.subRows.length);
+ assertEquals(2, g.subRows[0].length);
+ assertEquals(g.slices[0], g.subRows[0][0]);
+ assertEquals(g.slices[2], g.subRows[0][1]);
+ assertEquals(1, g.subRows[1].length);
+ assertEquals(g.slices[1], g.subRows[1][0]);
+}
+
function testAsyncSliceGroup_computeSubGroups_twoThreadSpecificSlices() {
var p1 = new TimelineProcess(1);
var t1 = new TimelineThread(p1, 1);