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

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

Issue 11881031: Add Dart class for _ExternalUint8ClampedArray and API to allocate it. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 11 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 patch class Int8List { 5 patch class Int8List {
6 /* patch */ factory Int8List(int length) { 6 /* patch */ factory Int8List(int length) {
7 return new _Int8Array(length); 7 return new _Int8Array(length);
8 } 8 }
9 9
10 /* patch */ factory Int8List.transferable(int length) { 10 /* patch */ factory Int8List.transferable(int length) {
(...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 return _length() * _BYTES_PER_ELEMENT; 1324 return _length() * _BYTES_PER_ELEMENT;
1325 } 1325 }
1326 1326
1327 static const int _BYTES_PER_ELEMENT = 1; 1327 static const int _BYTES_PER_ELEMENT = 1;
1328 1328
1329 int _getIndexed(int index) native "ExternalUint8Array_getIndexed"; 1329 int _getIndexed(int index) native "ExternalUint8Array_getIndexed";
1330 int _setIndexed(int index, int value) native "ExternalUint8Array_setIndexed"; 1330 int _setIndexed(int index, int value) native "ExternalUint8Array_setIndexed";
1331 } 1331 }
1332 1332
1333 1333
1334 class _ExternalUint8ClampedArray
1335 extends _ByteArrayBase implements Uint8ClampedList {
1336
1337 int operator[](int index) {
1338 return _getIndexed(index);
1339 }
1340
1341 int operator[]=(int index, int value) {
1342 _setIndexed(index, _toClampedUint8(value));
1343 }
1344
1345 Iterator<int> get iterator {
1346 return new _ByteArrayIterator<int>(this);
1347 }
1348
1349 List<int> getRange(int start, int length) {
1350 _rangeCheck(this.length, start, length);
1351 List<int> result = new Uint8ClampedList(length);
1352 result.setRange(0, length, this, start);
1353 return result;
1354 }
1355
1356 void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
1357 if (from is _ExternalUint8ClampedArray || from is _Uint8ClampedArray) {
1358 _setRange(start * _BYTES_PER_ELEMENT,
1359 length * _BYTES_PER_ELEMENT,
1360 from,
1361 startFrom * _BYTES_PER_ELEMENT);
1362 } else {
1363 Arrays.copy(from, startFrom, this, start, length);
1364 }
1365 }
1366
1367 String toString() {
1368 return Collections.collectionToString(this);
1369 }
1370
1371 int bytesPerElement() {
1372 return _BYTES_PER_ELEMENT;
1373 }
1374
1375 int lengthInBytes() {
1376 return _length() * _BYTES_PER_ELEMENT;
1377 }
1378
1379 static const int _BYTES_PER_ELEMENT = 1;
1380
1381 int _getIndexed(int index) native "ExternalUint8ClampedArray_getIndexed";
1382 int _setIndexed(int index, int value) native "ExternalUint8ClampedArray_setInd exed";
1383 }
1384
1385
1334 class _ExternalInt16Array extends _ByteArrayBase implements Int16List { 1386 class _ExternalInt16Array extends _ByteArrayBase implements Int16List {
1335 int operator[](int index) { 1387 int operator[](int index) {
1336 return _getIndexed(index); 1388 return _getIndexed(index);
1337 } 1389 }
1338 1390
1339 int operator[]=(int index, int value) { 1391 int operator[]=(int index, int value) {
1340 _setIndexed(index, _toInt16(value)); 1392 _setIndexed(index, _toInt16(value));
1341 } 1393 }
1342 1394
1343 Iterator<int> get iterator { 1395 Iterator<int> get iterator {
(...skipping 1253 matching lines...) Expand 10 before | Expand all | Expand 10 after
2597 ByteArray asByteArray([int start = 0, int length]) { 2649 ByteArray asByteArray([int start = 0, int length]) {
2598 if (length == null) { 2650 if (length == null) {
2599 length = this.lengthInBytes(); 2651 length = this.lengthInBytes();
2600 } 2652 }
2601 _rangeCheck(this.length, start, length); 2653 _rangeCheck(this.length, start, length);
2602 return _array.subByteArray(_offset + start, length); 2654 return _array.subByteArray(_offset + start, length);
2603 } 2655 }
2604 2656
2605 static const int _BYTES_PER_ELEMENT = 8; 2657 static const int _BYTES_PER_ELEMENT = 8;
2606 } 2658 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698