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

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

Issue 8276005: Implement List.getRange. (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
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 class GrowableObjectArray<T> implements Array<T> { 5 class GrowableObjectArray<T> implements Array<T> {
6 Array<T> backingArray; 6 Array<T> backingArray;
7 7
8 void copyFrom(Array<Object> src, int srcStart, int dstStart, int count) { 8 void copyFrom(Array<Object> src, int srcStart, int dstStart, int count) {
9 Arrays.copy(src, srcStart, this, dstStart, count); 9 Arrays.copy(src, srcStart, this, dstStart, count);
10 } 10 }
(...skipping 22 matching lines...) Expand all
33 start, 33 start,
34 this.length - length - start); 34 this.length - length - start);
35 this.length = this.length - length; 35 this.length = this.length - length;
36 } 36 }
37 37
38 void insertRange(int start, int length, [T initialValue = null]) { 38 void insertRange(int start, int length, [T initialValue = null]) {
39 throw const NotImplementedException(); 39 throw const NotImplementedException();
40 } 40 }
41 41
42 List<T> getRange(int start, int length) { 42 List<T> getRange(int start, int length) {
43 throw const NotImplementedException(); 43 if (length == 0) return [];
44 Arrays.rangeCheck(this, start, length);
45 return new List<T>.fromList(this, start, start + length);
44 } 46 }
45 47
46 // The length of this growable array. It is always less than the 48 // The length of this growable array. It is always less than the
47 // length of the backing array. 49 // length of the backing array.
48 int _length; 50 int _length;
49 // Constant used by indexOf and lastIndexOf when the element given 51 // Constant used by indexOf and lastIndexOf when the element given
50 // is not in the array. 52 // is not in the array.
51 static final int ABSENT = -1; 53 static final int ABSENT = -1;
52 54
53 GrowableObjectArray() 55 GrowableObjectArray()
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 if (!hasNext()) { 209 if (!hasNext()) {
208 throw const NoMoreElementsException(); 210 throw const NoMoreElementsException();
209 } 211 }
210 return _array[_pos++]; 212 return _array[_pos++];
211 } 213 }
212 214
213 final GrowableObjectArray<T> _array; 215 final GrowableObjectArray<T> _array;
214 int _pos; 216 int _pos;
215 } 217 }
216 218
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698