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

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

Issue 11414211: Expose transferable constructor to Int8List (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Final review fixes Created 8 years 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.transferrable(int length) {
11 return new _Int8Array.transferrable(length);
12 }
13
10 /* patch */ factory Int8List.view(ByteArray array, 14 /* patch */ factory Int8List.view(ByteArray array,
11 [int start = 0, int length]) { 15 [int start = 0, int length]) {
12 return new _Int8ArrayView(array, start, length); 16 return new _Int8ArrayView(array, start, length);
13 } 17 }
14 } 18 }
15 19
16 20
17 patch class Uint8List { 21 patch class Uint8List {
18 /* patch */ factory Uint8List(int length) { 22 /* patch */ factory Uint8List(int length) {
19 return new _Uint8Array(length); 23 return new _Uint8Array(length);
20 } 24 }
21 25
26 /* patch */ factory Uint8List.transferrable(int length) {
27 return new _Uint8Array.transferrable(length);
28 }
29
22 /* patch */ factory Uint8List.view(ByteArray array, 30 /* patch */ factory Uint8List.view(ByteArray array,
23 [int start = 0, int length]) { 31 [int start = 0, int length]) {
24 return new _Uint8ArrayView(array, start, length); 32 return new _Uint8ArrayView(array, start, length);
25 } 33 }
26 } 34 }
27 35
28 36
29 patch class Int16List { 37 patch class Int16List {
30 /* patch */ factory Int16List(int length) { 38 /* patch */ factory Int16List(int length) {
31 return new _Int16Array(length); 39 return new _Int16Array(length);
32 } 40 }
33 41
42 /* patch */ factory Int16List.transferrable(int length) {
43 return new _Int16Array.transferrable(length);
44 }
45
34 /* patch */ factory Int16List.view(ByteArray array, [int start = 0, int length ]) { 46 /* patch */ factory Int16List.view(ByteArray array, [int start = 0, int length ]) {
35 return new _Int16ArrayView(array, start, length); 47 return new _Int16ArrayView(array, start, length);
36 } 48 }
37 } 49 }
38 50
39 51
40 patch class Uint16List { 52 patch class Uint16List {
41 /* patch */ factory Uint16List(int length) { 53 /* patch */ factory Uint16List(int length) {
42 return new _Uint16Array(length); 54 return new _Uint16Array(length);
43 } 55 }
44 56
57 /* patch */ factory Uint16List.transferrable(int length) {
58 return new _Uint16Array.transferrable(length);
59 }
60
45 /* patch */ factory Uint16List.view(ByteArray array, [int start = 0, int lengt h]) { 61 /* patch */ factory Uint16List.view(ByteArray array, [int start = 0, int lengt h]) {
46 return new _Uint16ArrayView(array, start, length); 62 return new _Uint16ArrayView(array, start, length);
47 } 63 }
48 } 64 }
49 65
50 66
51 patch class Int32List { 67 patch class Int32List {
52 /* patch */ factory Int32List(int length) { 68 /* patch */ factory Int32List(int length) {
53 return new _Int32Array(length); 69 return new _Int32Array(length);
54 } 70 }
55 71
72 /* patch */ factory Int32List.transferrable(int length) {
73 return new _Int32Array.transferrable(length);
74 }
75
56 /* patch */ factory Int32List.view(ByteArray array, [int start = 0, int length ]) { 76 /* patch */ factory Int32List.view(ByteArray array, [int start = 0, int length ]) {
57 return new _Int32ArrayView(array, start, length); 77 return new _Int32ArrayView(array, start, length);
58 } 78 }
59 } 79 }
60 80
61 81
62 patch class Uint32List { 82 patch class Uint32List {
63 /* patch */ factory Uint32List(int length) { 83 /* patch */ factory Uint32List(int length) {
64 return new _Uint32Array(length); 84 return new _Uint32Array(length);
65 } 85 }
66 86
87 /* patch */ factory Uint32List.transferrable(int length) {
88 return new _Uint32Array.transferrable(length);
89 }
90
67 /* patch */ factory Uint32List.view(ByteArray array, [int start = 0, int lengt h]) { 91 /* patch */ factory Uint32List.view(ByteArray array, [int start = 0, int lengt h]) {
68 return new _Uint32ArrayView(array, start, length); 92 return new _Uint32ArrayView(array, start, length);
69 } 93 }
70 } 94 }
71 95
72 96
73 patch class Int64List { 97 patch class Int64List {
74 /* patch */ factory Int64List(int length) { 98 /* patch */ factory Int64List(int length) {
75 return new _Int64Array(length); 99 return new _Int64Array(length);
76 } 100 }
77 101
102 /* patch */ factory Int64List.transferrable(int length) {
103 return new _Int64Array.transferrable(length);
104 }
105
78 /* patch */ factory Int64List.view(ByteArray array, [int start = 0, int length ]) { 106 /* patch */ factory Int64List.view(ByteArray array, [int start = 0, int length ]) {
79 return new _Int64ArrayView(array, start, length); 107 return new _Int64ArrayView(array, start, length);
80 } 108 }
81 } 109 }
82 110
83 111
84 patch class Uint64List { 112 patch class Uint64List {
85 /* patch */ factory Uint64List(int length) { 113 /* patch */ factory Uint64List(int length) {
86 return new _Uint64Array(length); 114 return new _Uint64Array(length);
87 } 115 }
88 116
117 /* patch */ factory Uint64List.transferrable(int length) {
118 return new _Uint64Array.transferrable(length);
119 }
120
89 /* patch */ factory Uint64List.view(ByteArray array, [int start = 0, int lengt h]) { 121 /* patch */ factory Uint64List.view(ByteArray array, [int start = 0, int lengt h]) {
90 return new _Uint64ArrayView(array, start, length); 122 return new _Uint64ArrayView(array, start, length);
91 } 123 }
92 } 124 }
93 125
94 126
95 patch class Float32List { 127 patch class Float32List {
96 /* patch */ factory Float32List(int length) { 128 /* patch */ factory Float32List(int length) {
97 return new _Float32Array(length); 129 return new _Float32Array(length);
98 } 130 }
99 131
132 /* patch */ factory Float32List.transferrable(int length) {
133 return new _Float32Array.transferrable(length);
134 }
135
100 /* patch */ factory Float32List.view(ByteArray array, [int start = 0, int leng th]) { 136 /* patch */ factory Float32List.view(ByteArray array, [int start = 0, int leng th]) {
101 return new _Float32ArrayView(array, start, length); 137 return new _Float32ArrayView(array, start, length);
102 } 138 }
103 } 139 }
104 140
105 141
106 patch class Float64List { 142 patch class Float64List {
107 /* patch */ factory Float64List(int length) { 143 /* patch */ factory Float64List(int length) {
108 return new _Float64Array(length); 144 return new _Float64Array(length);
109 } 145 }
110 146
147 /* patch */ factory Float64List.transferrable(int length) {
148 return new _Float64Array.transferrable(length);
149 }
150
111 /* patch */ factory Float64List.view(ByteArray array, [int start = 0, int leng th]) { 151 /* patch */ factory Float64List.view(ByteArray array, [int start = 0, int leng th]) {
112 return new _Float64ArrayView(array, start, length); 152 return new _Float64ArrayView(array, start, length);
113 } 153 }
114 } 154 }
115 155
116 156
117 abstract class _ByteArrayBase { 157 abstract class _ByteArrayBase {
118 int lengthInBytes(); 158 int lengthInBytes();
119 159
120 int bytesPerElement(); 160 int bytesPerElement();
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 } 380 }
341 throw new ArgumentError("$object is not an integer or null"); 381 throw new ArgumentError("$object is not an integer or null");
342 } 382 }
343 383
344 384
345 class _Int8Array extends _ByteArrayBase implements Int8List { 385 class _Int8Array extends _ByteArrayBase implements Int8List {
346 factory _Int8Array(int length) { 386 factory _Int8Array(int length) {
347 return _new(length); 387 return _new(length);
348 } 388 }
349 389
390 factory _Int8Array.transferrable(int length) {
391 return _newTransferrable(length);
392 }
393
350 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) { 394 factory _Int8Array.view(ByteArray array, [int start = 0, int length]) {
351 if (length == null) { 395 if (length == null) {
352 length = array.lengthInBytes(); 396 length = array.lengthInBytes();
353 } 397 }
354 return new _Int8ArrayView(array, start, length); 398 return new _Int8ArrayView(array, start, length);
355 } 399 }
356 400
357 int operator[](int index) { 401 int operator[](int index) {
358 return _getIndexed(index); 402 return _getIndexed(index);
359 } 403 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 return _BYTES_PER_ELEMENT; 436 return _BYTES_PER_ELEMENT;
393 } 437 }
394 438
395 int lengthInBytes() { 439 int lengthInBytes() {
396 return _length() * _BYTES_PER_ELEMENT; 440 return _length() * _BYTES_PER_ELEMENT;
397 } 441 }
398 442
399 static const int _BYTES_PER_ELEMENT = 1; 443 static const int _BYTES_PER_ELEMENT = 1;
400 444
401 static _Int8Array _new(int length) native "Int8Array_new"; 445 static _Int8Array _new(int length) native "Int8Array_new";
446 static _Int8Array _newTransferrable(int length)
447 native "Int8Array_newTransferrable";
448
402 449
403 int _getIndexed(int index) native "Int8Array_getIndexed"; 450 int _getIndexed(int index) native "Int8Array_getIndexed";
404 int _setIndexed(int index, int value) native "Int8Array_setIndexed"; 451 int _setIndexed(int index, int value) native "Int8Array_setIndexed";
405 } 452 }
406 453
407 454
408 class _Uint8Array extends _ByteArrayBase implements Uint8List { 455 class _Uint8Array extends _ByteArrayBase implements Uint8List {
409 factory _Uint8Array(int length) { 456 factory _Uint8Array(int length) {
410 return _new(length); 457 return _new(length);
411 } 458 }
412 459
460 factory _Uint8Array.transferrable(int length) {
461 return _newTransferrable(length);
462 }
463
413 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) { 464 factory _Uint8Array.view(ByteArray array, [int start = 0, int length]) {
414 if (length == null) { 465 if (length == null) {
415 length = array.lengthInBytes(); 466 length = array.lengthInBytes();
416 } 467 }
417 return new _Uint8ArrayView(array, start, length); 468 return new _Uint8ArrayView(array, start, length);
418 } 469 }
419 470
420 int operator[](int index) { 471 int operator[](int index) {
421 return _getIndexed(index); 472 return _getIndexed(index);
422 } 473 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 return _BYTES_PER_ELEMENT; 506 return _BYTES_PER_ELEMENT;
456 } 507 }
457 508
458 int lengthInBytes() { 509 int lengthInBytes() {
459 return _length() * _BYTES_PER_ELEMENT; 510 return _length() * _BYTES_PER_ELEMENT;
460 } 511 }
461 512
462 static const int _BYTES_PER_ELEMENT = 1; 513 static const int _BYTES_PER_ELEMENT = 1;
463 514
464 static _Uint8Array _new(int length) native "Uint8Array_new"; 515 static _Uint8Array _new(int length) native "Uint8Array_new";
465 516 static _Uint8Array _newTransferrable(int length)
517 native "Uint8Array_newTransferrable";
518
466 int _getIndexed(int index) native "Uint8Array_getIndexed"; 519 int _getIndexed(int index) native "Uint8Array_getIndexed";
467 int _setIndexed(int index, int value) native "Uint8Array_setIndexed"; 520 int _setIndexed(int index, int value) native "Uint8Array_setIndexed";
468 } 521 }
469 522
470 523
471 class _Int16Array extends _ByteArrayBase implements Int16List { 524 class _Int16Array extends _ByteArrayBase implements Int16List {
472 factory _Int16Array(int length) { 525 factory _Int16Array(int length) {
473 return _new(length); 526 return _new(length);
474 } 527 }
475 528
529 factory _Int16Array.transferrable(int length) {
530 return _newTransferrable(length);
531 }
532
476 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) { 533 factory _Int16Array.view(ByteArray array, [int start = 0, int length]) {
477 if (length == null) { 534 if (length == null) {
478 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 535 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
479 } 536 }
480 return new _Int16ArrayView(array, start, length); 537 return new _Int16ArrayView(array, start, length);
481 } 538 }
482 539
483 int operator[](int index) { 540 int operator[](int index) {
484 return _getIndexed(index); 541 return _getIndexed(index);
485 } 542 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 return _BYTES_PER_ELEMENT; 575 return _BYTES_PER_ELEMENT;
519 } 576 }
520 577
521 int lengthInBytes() { 578 int lengthInBytes() {
522 return _length() * _BYTES_PER_ELEMENT; 579 return _length() * _BYTES_PER_ELEMENT;
523 } 580 }
524 581
525 static const int _BYTES_PER_ELEMENT = 2; 582 static const int _BYTES_PER_ELEMENT = 2;
526 583
527 static _Int16Array _new(int length) native "Int16Array_new"; 584 static _Int16Array _new(int length) native "Int16Array_new";
585 static _Int16Array _newTransferrable(int length)
586 native "Int16Array_newTransferrable";
528 587
529 int _getIndexed(int index) native "Int16Array_getIndexed"; 588 int _getIndexed(int index) native "Int16Array_getIndexed";
530 int _setIndexed(int index, int value) native "Int16Array_setIndexed"; 589 int _setIndexed(int index, int value) native "Int16Array_setIndexed";
531 } 590 }
532 591
533 592
534 class _Uint16Array extends _ByteArrayBase implements Uint16List { 593 class _Uint16Array extends _ByteArrayBase implements Uint16List {
535 factory _Uint16Array(int length) { 594 factory _Uint16Array(int length) {
536 return _new(length); 595 return _new(length);
537 } 596 }
538 597
598 factory _Uint16Array.transferrable(int length) {
599 return _newTransferrable(length);
600 }
601
539 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) { 602 factory _Uint16Array.view(ByteArray array, [int start = 0, int length]) {
540 if (length == null) { 603 if (length == null) {
541 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 604 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
542 } 605 }
543 return new _Uint16ArrayView(array, start, length); 606 return new _Uint16ArrayView(array, start, length);
544 } 607 }
545 608
546 int operator[](int index) { 609 int operator[](int index) {
547 return _getIndexed(index); 610 return _getIndexed(index);
548 } 611 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return _BYTES_PER_ELEMENT; 644 return _BYTES_PER_ELEMENT;
582 } 645 }
583 646
584 int lengthInBytes() { 647 int lengthInBytes() {
585 return _length() * _BYTES_PER_ELEMENT; 648 return _length() * _BYTES_PER_ELEMENT;
586 } 649 }
587 650
588 static const int _BYTES_PER_ELEMENT = 2; 651 static const int _BYTES_PER_ELEMENT = 2;
589 652
590 static _Uint16Array _new(int length) native "Uint16Array_new"; 653 static _Uint16Array _new(int length) native "Uint16Array_new";
654 static _Uint16Array _newTransferrable(int length)
655 native "Uint16Array_newTransferrable";
591 656
592 int _getIndexed(int index) native "Uint16Array_getIndexed"; 657 int _getIndexed(int index) native "Uint16Array_getIndexed";
593 int _setIndexed(int index, int value) native "Uint16Array_setIndexed"; 658 int _setIndexed(int index, int value) native "Uint16Array_setIndexed";
594 } 659 }
595 660
596 661
597 class _Int32Array extends _ByteArrayBase implements Int32List { 662 class _Int32Array extends _ByteArrayBase implements Int32List {
598 factory _Int32Array(int length) { 663 factory _Int32Array(int length) {
599 return _new(length); 664 return _new(length);
600 } 665 }
601 666
667 factory _Int32Array.transferrable(int length) {
668 return _newTransferrable(length);
669 }
670
602 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) { 671 factory _Int32Array.view(ByteArray array, [int start = 0, int length]) {
603 if (length == null) { 672 if (length == null) {
604 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 673 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
605 } 674 }
606 return new _Int32ArrayView(array, start, length); 675 return new _Int32ArrayView(array, start, length);
607 } 676 }
608 677
609 int operator[](int index) { 678 int operator[](int index) {
610 return _getIndexed(index); 679 return _getIndexed(index);
611 } 680 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 return _BYTES_PER_ELEMENT; 713 return _BYTES_PER_ELEMENT;
645 } 714 }
646 715
647 int lengthInBytes() { 716 int lengthInBytes() {
648 return _length() * _BYTES_PER_ELEMENT; 717 return _length() * _BYTES_PER_ELEMENT;
649 } 718 }
650 719
651 static const int _BYTES_PER_ELEMENT = 4; 720 static const int _BYTES_PER_ELEMENT = 4;
652 721
653 static _Int32Array _new(int length) native "Int32Array_new"; 722 static _Int32Array _new(int length) native "Int32Array_new";
723 static _Int32Array _newTransferrable(int length)
724 native "Int32Array_newTransferrable";
725
654 726
655 int _getIndexed(int index) native "Int32Array_getIndexed"; 727 int _getIndexed(int index) native "Int32Array_getIndexed";
656 int _setIndexed(int index, int value) native "Int32Array_setIndexed"; 728 int _setIndexed(int index, int value) native "Int32Array_setIndexed";
657 } 729 }
658 730
659 731
660 class _Uint32Array extends _ByteArrayBase implements Uint32List { 732 class _Uint32Array extends _ByteArrayBase implements Uint32List {
661 factory _Uint32Array(int length) { 733 factory _Uint32Array(int length) {
662 return _new(length); 734 return _new(length);
663 } 735 }
664 736
737 factory _Uint32Array.transferrable(int length) {
738 return _newTransferrable(length);
739 }
740
665 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) { 741 factory _Uint32Array.view(ByteArray array, [int start = 0, int length]) {
666 if (length == null) { 742 if (length == null) {
667 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 743 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
668 } 744 }
669 return new _Uint32ArrayView(array, start, length); 745 return new _Uint32ArrayView(array, start, length);
670 } 746 }
671 747
672 int operator[](int index) { 748 int operator[](int index) {
673 return _getIndexed(index); 749 return _getIndexed(index);
674 } 750 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 return _BYTES_PER_ELEMENT; 783 return _BYTES_PER_ELEMENT;
708 } 784 }
709 785
710 int lengthInBytes() { 786 int lengthInBytes() {
711 return _length() * _BYTES_PER_ELEMENT; 787 return _length() * _BYTES_PER_ELEMENT;
712 } 788 }
713 789
714 static const int _BYTES_PER_ELEMENT = 4; 790 static const int _BYTES_PER_ELEMENT = 4;
715 791
716 static _Uint32Array _new(int length) native "Uint32Array_new"; 792 static _Uint32Array _new(int length) native "Uint32Array_new";
793 static _Uint32Array _newTransferrable(int length)
794 native "Uint32Array_newTransferrable";
717 795
718 int _getIndexed(int index) native "Uint32Array_getIndexed"; 796 int _getIndexed(int index) native "Uint32Array_getIndexed";
719 int _setIndexed(int index, int value) native "Uint32Array_setIndexed"; 797 int _setIndexed(int index, int value) native "Uint32Array_setIndexed";
720 } 798 }
721 799
722 800
723 class _Int64Array extends _ByteArrayBase implements Int64List { 801 class _Int64Array extends _ByteArrayBase implements Int64List {
724 factory _Int64Array(int length) { 802 factory _Int64Array(int length) {
725 return _new(length); 803 return _new(length);
726 } 804 }
727 805
806 factory _Int64Array.transferrable(int length) {
807 return _newTransferrable(length);
808 }
809
728 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) { 810 factory _Int64Array.view(ByteArray array, [int start = 0, int length]) {
729 if (length == null) { 811 if (length == null) {
730 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 812 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
731 } 813 }
732 return new _Int64ArrayView(array, start, length); 814 return new _Int64ArrayView(array, start, length);
733 } 815 }
734 816
735 int operator[](int index) { 817 int operator[](int index) {
736 return _getIndexed(index); 818 return _getIndexed(index);
737 } 819 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 return _BYTES_PER_ELEMENT; 852 return _BYTES_PER_ELEMENT;
771 } 853 }
772 854
773 int lengthInBytes() { 855 int lengthInBytes() {
774 return _length() * _BYTES_PER_ELEMENT; 856 return _length() * _BYTES_PER_ELEMENT;
775 } 857 }
776 858
777 static const int _BYTES_PER_ELEMENT = 8; 859 static const int _BYTES_PER_ELEMENT = 8;
778 860
779 static _Int64Array _new(int length) native "Int64Array_new"; 861 static _Int64Array _new(int length) native "Int64Array_new";
862 static _Int64Array _newTransferrable(int length)
863 native "Int64Array_newTransferrable";
780 864
781 int _getIndexed(int index) native "Int64Array_getIndexed"; 865 int _getIndexed(int index) native "Int64Array_getIndexed";
782 int _setIndexed(int index, int value) native "Int64Array_setIndexed"; 866 int _setIndexed(int index, int value) native "Int64Array_setIndexed";
783 } 867 }
784 868
785 869
786 class _Uint64Array extends _ByteArrayBase implements Uint64List { 870 class _Uint64Array extends _ByteArrayBase implements Uint64List {
787 factory _Uint64Array(int length) { 871 factory _Uint64Array(int length) {
788 return _new(length); 872 return _new(length);
789 } 873 }
790 874
875 factory _Uint64Array.transferrable(int length) {
876 return _newTransferrable(length);
877 }
878
791 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) { 879 factory _Uint64Array.view(ByteArray array, [int start = 0, int length]) {
792 if (length == null) { 880 if (length == null) {
793 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 881 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
794 } 882 }
795 return new _Uint64ArrayView(array, start, length); 883 return new _Uint64ArrayView(array, start, length);
796 } 884 }
797 885
798 int operator[](int index) { 886 int operator[](int index) {
799 return _getIndexed(index); 887 return _getIndexed(index);
800 } 888 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 return _BYTES_PER_ELEMENT; 921 return _BYTES_PER_ELEMENT;
834 } 922 }
835 923
836 int lengthInBytes() { 924 int lengthInBytes() {
837 return _length() * _BYTES_PER_ELEMENT; 925 return _length() * _BYTES_PER_ELEMENT;
838 } 926 }
839 927
840 static const int _BYTES_PER_ELEMENT = 8; 928 static const int _BYTES_PER_ELEMENT = 8;
841 929
842 static _Uint64Array _new(int length) native "Uint64Array_new"; 930 static _Uint64Array _new(int length) native "Uint64Array_new";
931 static _Uint64Array _newTransferrable(int length)
932 native "Uint64Array_newTransferrable";
843 933
844 int _getIndexed(int index) native "Uint64Array_getIndexed"; 934 int _getIndexed(int index) native "Uint64Array_getIndexed";
845 int _setIndexed(int index, int value) native "Uint64Array_setIndexed"; 935 int _setIndexed(int index, int value) native "Uint64Array_setIndexed";
846 } 936 }
847 937
848 938
849 class _Float32Array extends _ByteArrayBase implements Float32List { 939 class _Float32Array extends _ByteArrayBase implements Float32List {
850 factory _Float32Array(int length) { 940 factory _Float32Array(int length) {
851 return _new(length); 941 return _new(length);
852 } 942 }
853 943
944 factory _Float32Array.transferrable(int length) {
945 return _newTransferrable(length);
946 }
947
854 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) { 948 factory _Float32Array.view(ByteArray array, [int start = 0, int length]) {
855 if (length == null) { 949 if (length == null) {
856 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 950 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
857 } 951 }
858 return new _Float32ArrayView(array, start, length); 952 return new _Float32ArrayView(array, start, length);
859 } 953 }
860 954
861 double operator[](int index) { 955 double operator[](int index) {
862 return _getIndexed(index); 956 return _getIndexed(index);
863 } 957 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 return _BYTES_PER_ELEMENT; 990 return _BYTES_PER_ELEMENT;
897 } 991 }
898 992
899 int lengthInBytes() { 993 int lengthInBytes() {
900 return _length() * _BYTES_PER_ELEMENT; 994 return _length() * _BYTES_PER_ELEMENT;
901 } 995 }
902 996
903 static const int _BYTES_PER_ELEMENT = 4; 997 static const int _BYTES_PER_ELEMENT = 4;
904 998
905 static _Float32Array _new(int length) native "Float32Array_new"; 999 static _Float32Array _new(int length) native "Float32Array_new";
1000 static _Float32Array _newTransferrable(int length)
1001 native "Float32Array_newTransferrable";
906 1002
907 double _getIndexed(int index) native "Float32Array_getIndexed"; 1003 double _getIndexed(int index) native "Float32Array_getIndexed";
908 int _setIndexed(int index, double value) native "Float32Array_setIndexed"; 1004 int _setIndexed(int index, double value) native "Float32Array_setIndexed";
909 } 1005 }
910 1006
911 1007
912 class _Float64Array extends _ByteArrayBase implements Float64List { 1008 class _Float64Array extends _ByteArrayBase implements Float64List {
913 factory _Float64Array(int length) { 1009 factory _Float64Array(int length) {
914 return _new(length); 1010 return _new(length);
915 } 1011 }
916 1012
1013 factory _Float64Array.transferrable(int length) {
1014 return _newTransferrable(length);
1015 }
1016
917 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) { 1017 factory _Float64Array.view(ByteArray array, [int start = 0, int length]) {
918 if (length == null) { 1018 if (length == null) {
919 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT; 1019 length = (array.lengthInBytes() - start) ~/ _BYTES_PER_ELEMENT;
920 } 1020 }
921 return new _Float64ArrayView(array, start, length); 1021 return new _Float64ArrayView(array, start, length);
922 } 1022 }
923 1023
924 double operator[](int index) { 1024 double operator[](int index) {
925 return _getIndexed(index); 1025 return _getIndexed(index);
926 } 1026 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 return _BYTES_PER_ELEMENT; 1059 return _BYTES_PER_ELEMENT;
960 } 1060 }
961 1061
962 int lengthInBytes() { 1062 int lengthInBytes() {
963 return _length() * _BYTES_PER_ELEMENT; 1063 return _length() * _BYTES_PER_ELEMENT;
964 } 1064 }
965 1065
966 static const int _BYTES_PER_ELEMENT = 8; 1066 static const int _BYTES_PER_ELEMENT = 8;
967 1067
968 static _Float64Array _new(int length) native "Float64Array_new"; 1068 static _Float64Array _new(int length) native "Float64Array_new";
1069 static _Float64Array _newTransferrable(int length)
1070 native "Float64Array_newTransferrable";
969 1071
970 double _getIndexed(int index) native "Float64Array_getIndexed"; 1072 double _getIndexed(int index) native "Float64Array_getIndexed";
971 int _setIndexed(int index, double value) native "Float64Array_setIndexed"; 1073 int _setIndexed(int index, double value) native "Float64Array_setIndexed";
972 } 1074 }
973 1075
974 1076
975 class _ExternalInt8Array extends _ByteArrayBase implements Int8List { 1077 class _ExternalInt8Array extends _ByteArrayBase implements Int8List {
976 int operator[](int index) { 1078 int operator[](int index) {
977 return _getIndexed(index); 1079 return _getIndexed(index);
978 } 1080 }
(...skipping 1440 matching lines...) Expand 10 before | Expand all | Expand 10 after
2419 } 2521 }
2420 _rangeCheck(this.length, start, length); 2522 _rangeCheck(this.length, start, length);
2421 return _array.subByteArray(_offset + start, length); 2523 return _array.subByteArray(_offset + start, length);
2422 } 2524 }
2423 2525
2424 static const int _BYTES_PER_ELEMENT = 8; 2526 static const int _BYTES_PER_ELEMENT = 8;
2425 final ByteArray _array; 2527 final ByteArray _array;
2426 final int _offset; 2528 final int _offset;
2427 final int _length; 2529 final int _length;
2428 } 2530 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698