Chromium Code Reviews| Index: tools/full-coverage.dart |
| diff --git a/tools/full-coverage.dart b/tools/full-coverage.dart |
| index 0fe6e6fed2ee18d820cf401e27073d8dd7411310..d26dd1ee8168eac6f272d3d85e4882b58638f253 100644 |
| --- a/tools/full-coverage.dart |
| +++ b/tools/full-coverage.dart |
| @@ -271,7 +271,7 @@ worker(WorkMessage msg) { |
| if (env["verbose"]) { |
| final end = new DateTime.now().millisecondsSinceEpoch; |
| - print("${msg.workerName}: Finished processing files. " |
| + print("${msg.workerName}: Finished processing ${files.length} files. " |
| "Took ${end - start} ms."); |
| } |
| @@ -295,17 +295,16 @@ class ResultMessage { |
| final env = new Environment(); |
| List<List> split(List list, int nBuckets) { |
| - // Leftover goes in the last bucket. |
| - // TODO(16505): Do a fair split. |
| var buckets = new List(nBuckets); |
| var bucketSize = list.length ~/ nBuckets; |
| + var leftover = list.length - (bucketSize * nBuckets); |
|
Ivan Posva
2014/02/07 00:21:00
Why not "list.length % nBuckets"?
rmacnak
2014/02/07 02:26:49
Forgot this was an operator ...
|
| var taken = 0; |
| + var start = 0; |
| for (int i = 0; i < nBuckets; i++) { |
| - bool lastBucket = i + 1 == nBuckets; |
| - var start = i * bucketSize; |
| - var end = lastBucket ? list.length : start + bucketSize ; |
| + var end = i < leftover ? start + bucketSize + 1 : start + bucketSize; |
|
Ivan Posva
2014/02/07 00:21:00
() ? () : ();
|
| buckets[i] = list.sublist(start, end); |
| taken += buckets[i].length; |
| + start = end; |
| } |
| if (taken != list.length) throw "Error splitting"; |
| return buckets; |