Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: runtime/lib/arrays.dart

Issue 8321024: Clean up (most) uses of Array. Still more to come in the VM corelib code base. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/lib/array.dart ('k') | runtime/lib/growable_array.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // TODO(ngeoffray): Rename to Lists.
5 class Arrays { 6 class Arrays {
6 7
7 static String asString(Array array) { 8 static String asString(List list) {
8 String result = "["; 9 String result = "[";
9 int len = array.length; 10 int len = list.length;
10 for (int i = 0; i < len; i++) { 11 for (int i = 0; i < len; i++) {
11 // TODO(4466785): Deal with recursion and formatting. 12 // TODO(4466785): Deal with recursion and formatting.
12 result += array[i].toString() + ", "; 13 result += list[i].toString() + ", ";
13 } 14 }
14 result += "]"; 15 result += "]";
15 return result; 16 return result;
16 } 17 }
17 18
18 static void copy(Array src, int srcStart, 19 static void copy(List src, int srcStart,
19 Array dst, int dstStart, int count) { 20 List dst, int dstStart, int count) {
20 if (srcStart === null) srcStart = 0; 21 if (srcStart === null) srcStart = 0;
21 if (dstStart === null) dstStart = 0; 22 if (dstStart === null) dstStart = 0;
22 23
23 if (srcStart < dstStart) { 24 if (srcStart < dstStart) {
24 for (int i = srcStart + count - 1, j = dstStart + count - 1; 25 for (int i = srcStart + count - 1, j = dstStart + count - 1;
25 i >= srcStart; i--, j--) { 26 i >= srcStart; i--, j--) {
26 dst[j] = src[i]; 27 dst[j] = src[i];
27 } 28 }
28 } else { 29 } else {
29 for (int i = srcStart, j = dstStart; i < srcStart + count; i++, j++) { 30 for (int i = srcStart, j = dstStart; i < srcStart + count; i++, j++) {
30 dst[j] = src[i]; 31 dst[j] = src[i];
31 } 32 }
32 } 33 }
33 } 34 }
34 35
35 static bool areEqual(Array a, Object b) { 36 static bool areEqual(List a, Object b) {
36 if (a === b) return true; 37 if (a === b) return true;
37 if (!(b is Array)) return false; 38 if (!(b is List)) return false;
38 int length = a.length; 39 int length = a.length;
39 if (length != b.length) return false; 40 if (length != b.length) return false;
40 41
41 for (int i = 0; i < length; i++) { 42 for (int i = 0; i < length; i++) {
42 if (a[i] !== b[i]) return false; 43 if (a[i] !== b[i]) return false;
43 } 44 }
44 return true; 45 return true;
45 } 46 }
46 47
47 /** 48 /**
48 * Returns the index in the array [a] of the given [element], starting 49 * Returns the index in the list [a] of the given [element], starting
49 * the search at index [startIndex] to [endIndex] (exclusive). 50 * the search at index [startIndex] to [endIndex] (exclusive).
50 * Returns -1 if [element] is not found. 51 * Returns -1 if [element] is not found.
51 */ 52 */
52 static int indexOf(Array a, 53 static int indexOf(List a,
53 Object element, 54 Object element,
54 int startIndex, 55 int startIndex,
55 int endIndex) { 56 int endIndex) {
56 if (startIndex >= a.length) { 57 if (startIndex >= a.length) {
57 return -1; 58 return -1;
58 } 59 }
59 if (startIndex < 0) { 60 if (startIndex < 0) {
60 startIndex = 0; 61 startIndex = 0;
61 } 62 }
62 for (int i = startIndex; i < endIndex; i++) { 63 for (int i = startIndex; i < endIndex; i++) {
63 if (a[i] == element) { 64 if (a[i] == element) {
64 return i; 65 return i;
65 } 66 }
66 } 67 }
67 return -1; 68 return -1;
68 } 69 }
69 70
70 /** 71 /**
71 * Returns the last index in the array [a] of the given [element], starting 72 * Returns the last index in the list [a] of the given [element], starting
72 * the search at index [startIndex] to 0. 73 * the search at index [startIndex] to 0.
73 * Returns -1 if [element] is not found. 74 * Returns -1 if [element] is not found.
74 */ 75 */
75 static int lastIndexOf(Array a, Object element, int startIndex) { 76 static int lastIndexOf(List a, Object element, int startIndex) {
76 if (startIndex < 0) { 77 if (startIndex < 0) {
77 return -1; 78 return -1;
78 } 79 }
79 if (startIndex >= a.length) { 80 if (startIndex >= a.length) {
80 startIndex = a.length - 1; 81 startIndex = a.length - 1;
81 } 82 }
82 for (int i = startIndex; i >= 0; i--) { 83 for (int i = startIndex; i >= 0; i--) {
83 if (a[i] == element) { 84 if (a[i] == element) {
84 return i; 85 return i;
85 } 86 }
86 } 87 }
87 return -1; 88 return -1;
88 } 89 }
89 90
90 static void rangeCheck(Array a, int start, int length) { 91 static void rangeCheck(List a, int start, int length) {
91 if (length < 0) { 92 if (length < 0) {
92 throw new IllegalArgumentException("negative length $length"); 93 throw new IllegalArgumentException("negative length $length");
93 } 94 }
94 if (start < 0 || start >= a.length) { 95 if (start < 0 || start >= a.length) {
95 throw new IndexOutOfRangeException(start); 96 throw new IndexOutOfRangeException(start);
96 } 97 }
97 if (start + length > a.length) { 98 if (start + length > a.length) {
98 throw new IndexOutOfRangeException(start + length); 99 throw new IndexOutOfRangeException(start + length);
99 } 100 }
100 } 101 }
101 } 102 }
102 103
OLDNEW
« no previous file with comments | « runtime/lib/array.dart ('k') | runtime/lib/growable_array.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698