| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 classes for Int8List ..... Float64List and ByteData implementations. | 5 // patch classes for Int8List ..... Float64List and ByteData implementations. |
| 6 | 6 |
| 7 patch class Int8List { | 7 patch class Int8List { |
| 8 /* patch */ factory Int8List(int length) { | 8 /* patch */ factory Int8List(int length) { |
| 9 return new _Int8Array(length); | 9 return new _Int8Array(length); |
| 10 } | 10 } |
| (...skipping 2864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2875 _throwRangeError(byteOffset, length); | 2875 _throwRangeError(byteOffset, length); |
| 2876 } | 2876 } |
| 2877 _typeddata._setUint8(_offset + byteOffset, _toUint8(value)); | 2877 _typeddata._setUint8(_offset + byteOffset, _toUint8(value)); |
| 2878 } | 2878 } |
| 2879 | 2879 |
| 2880 int getInt16(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2880 int getInt16(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2881 if (byteOffset < 0 || byteOffset >= length) { | 2881 if (byteOffset < 0 || byteOffset >= length) { |
| 2882 _throwRangeError(byteOffset, length); | 2882 _throwRangeError(byteOffset, length); |
| 2883 } | 2883 } |
| 2884 var result = _typeddata._getInt16(_offset + byteOffset); | 2884 var result = _typeddata._getInt16(_offset + byteOffset); |
| 2885 if (endian === Endianness.HOST_ENDIAN) { | 2885 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 2886 return result; | 2886 return result; |
| 2887 } | 2887 } |
| 2888 return _toEndianInt16(result, endian._littleEndian); | 2888 return _toEndianInt16(result, endian._littleEndian); |
| 2889 } | 2889 } |
| 2890 void setInt16(int byteOffset, | 2890 void setInt16(int byteOffset, |
| 2891 int value, | 2891 int value, |
| 2892 [Endianness endian = Endianness.BIG_ENDIAN]) { | 2892 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2893 if (byteOffset < 0 || byteOffset >= length) { | 2893 if (byteOffset < 0 || byteOffset >= length) { |
| 2894 _throwRangeError(byteOffset, length); | 2894 _throwRangeError(byteOffset, length); |
| 2895 } | 2895 } |
| 2896 var set_value = _toInt16(value); | 2896 var set_value = _toInt16(value); |
| 2897 if (endian !== Endianness.HOST_ENDIAN) { | 2897 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 2898 set_value = _toEndianInt16(set_value, endian._littleEndian); | 2898 set_value = _toEndianInt16(set_value, endian._littleEndian); |
| 2899 } | 2899 } |
| 2900 _typeddata._setInt16(_offset + byteOffset, set_value); | 2900 _typeddata._setInt16(_offset + byteOffset, set_value); |
| 2901 } | 2901 } |
| 2902 | 2902 |
| 2903 int getUint16(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2903 int getUint16(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2904 if (byteOffset < 0 || byteOffset >= length) { | 2904 if (byteOffset < 0 || byteOffset >= length) { |
| 2905 _throwRangeError(byteOffset, length); | 2905 _throwRangeError(byteOffset, length); |
| 2906 } | 2906 } |
| 2907 var result = _typeddata._getUint16(_offset + byteOffset); | 2907 var result = _typeddata._getUint16(_offset + byteOffset); |
| 2908 if (endian === Endianness.HOST_ENDIAN) { | 2908 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 2909 return result; | 2909 return result; |
| 2910 } | 2910 } |
| 2911 return _toEndianUint16(result, endian._littleEndian); | 2911 return _toEndianUint16(result, endian._littleEndian); |
| 2912 } | 2912 } |
| 2913 void setUint16(int byteOffset, | 2913 void setUint16(int byteOffset, |
| 2914 int value, | 2914 int value, |
| 2915 [Endianness endian = Endianness.BIG_ENDIAN]) { | 2915 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2916 if (byteOffset < 0 || byteOffset >= length) { | 2916 if (byteOffset < 0 || byteOffset >= length) { |
| 2917 _throwRangeError(byteOffset, length); | 2917 _throwRangeError(byteOffset, length); |
| 2918 } | 2918 } |
| 2919 var set_value = _toUint16(value); | 2919 var set_value = _toUint16(value); |
| 2920 if (endian !== Endianness.HOST_ENDIAN) { | 2920 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 2921 set_value = _toEndianUint16(set_value, endian._littleEndian); | 2921 set_value = _toEndianUint16(set_value, endian._littleEndian); |
| 2922 } | 2922 } |
| 2923 _typeddata._setUint16(_offset + byteOffset, set_value); | 2923 _typeddata._setUint16(_offset + byteOffset, set_value); |
| 2924 } | 2924 } |
| 2925 | 2925 |
| 2926 int getInt32(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2926 int getInt32(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2927 if (byteOffset < 0 || byteOffset >= length) { | 2927 if (byteOffset < 0 || byteOffset >= length) { |
| 2928 _throwRangeError(byteOffset, length); | 2928 _throwRangeError(byteOffset, length); |
| 2929 } | 2929 } |
| 2930 var result = _typeddata._getInt32(_offset + byteOffset); | 2930 var result = _typeddata._getInt32(_offset + byteOffset); |
| 2931 if (endian === Endianness.HOST_ENDIAN) { | 2931 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 2932 return result; | 2932 return result; |
| 2933 } | 2933 } |
| 2934 return _toEndianInt32(result, endian._littleEndian); | 2934 return _toEndianInt32(result, endian._littleEndian); |
| 2935 } | 2935 } |
| 2936 void setInt32(int byteOffset, | 2936 void setInt32(int byteOffset, |
| 2937 int value, | 2937 int value, |
| 2938 [Endianness endian = Endianness.BIG_ENDIAN]) { | 2938 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2939 if (byteOffset < 0 || byteOffset >= length) { | 2939 if (byteOffset < 0 || byteOffset >= length) { |
| 2940 _throwRangeError(byteOffset, length); | 2940 _throwRangeError(byteOffset, length); |
| 2941 } | 2941 } |
| 2942 var set_value = _toInt32(value); | 2942 var set_value = _toInt32(value); |
| 2943 if (endian !== Endianness.HOST_ENDIAN) { | 2943 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 2944 set_value = _toEndianInt32(set_value, endian._littleEndian); | 2944 set_value = _toEndianInt32(set_value, endian._littleEndian); |
| 2945 } | 2945 } |
| 2946 _typeddata._setInt32(_offset + byteOffset, set_value); | 2946 _typeddata._setInt32(_offset + byteOffset, set_value); |
| 2947 } | 2947 } |
| 2948 | 2948 |
| 2949 int getUint32(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2949 int getUint32(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2950 if (byteOffset < 0 || byteOffset >= length) { | 2950 if (byteOffset < 0 || byteOffset >= length) { |
| 2951 _throwRangeError(byteOffset, length); | 2951 _throwRangeError(byteOffset, length); |
| 2952 } | 2952 } |
| 2953 var result = _typeddata._getUint32(_offset + byteOffset); | 2953 var result = _typeddata._getUint32(_offset + byteOffset); |
| 2954 if (endian === Endianness.HOST_ENDIAN) { | 2954 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 2955 return result; | 2955 return result; |
| 2956 } | 2956 } |
| 2957 return _toEndianUint32(result, endian._littleEndian); | 2957 return _toEndianUint32(result, endian._littleEndian); |
| 2958 } | 2958 } |
| 2959 void setUint32(int byteOffset, | 2959 void setUint32(int byteOffset, |
| 2960 int value, | 2960 int value, |
| 2961 [Endianness endian = Endianness.BIG_ENDIAN]) { | 2961 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2962 if (byteOffset < 0 || byteOffset >= length) { | 2962 if (byteOffset < 0 || byteOffset >= length) { |
| 2963 _throwRangeError(byteOffset, length); | 2963 _throwRangeError(byteOffset, length); |
| 2964 } | 2964 } |
| 2965 var set_value = _toUint32(value); | 2965 var set_value = _toUint32(value); |
| 2966 if (endian !== Endianness.HOST_ENDIAN) { | 2966 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 2967 set_value = _toEndianUint32(set_value, endian._littleEndian); | 2967 set_value = _toEndianUint32(set_value, endian._littleEndian); |
| 2968 } | 2968 } |
| 2969 _typeddata._setUint32(_offset + byteOffset, set_value); | 2969 _typeddata._setUint32(_offset + byteOffset, set_value); |
| 2970 } | 2970 } |
| 2971 | 2971 |
| 2972 int getInt64(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2972 int getInt64(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2973 if (byteOffset < 0 || byteOffset >= length) { | 2973 if (byteOffset < 0 || byteOffset >= length) { |
| 2974 _throwRangeError(byteOffset, length); | 2974 _throwRangeError(byteOffset, length); |
| 2975 } | 2975 } |
| 2976 var result = _typeddata._getInt64(_offset + byteOffset); | 2976 var result = _typeddata._getInt64(_offset + byteOffset); |
| 2977 if (endian === Endianness.HOST_ENDIAN) { | 2977 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 2978 return result; | 2978 return result; |
| 2979 } | 2979 } |
| 2980 return _toEndianInt64(result, endian._littleEndian); | 2980 return _toEndianInt64(result, endian._littleEndian); |
| 2981 } | 2981 } |
| 2982 void setInt64(int byteOffset, | 2982 void setInt64(int byteOffset, |
| 2983 int value, | 2983 int value, |
| 2984 [Endianness endian = Endianness.BIG_ENDIAN]) { | 2984 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2985 if (byteOffset < 0 || byteOffset >= length) { | 2985 if (byteOffset < 0 || byteOffset >= length) { |
| 2986 _throwRangeError(byteOffset, length); | 2986 _throwRangeError(byteOffset, length); |
| 2987 } | 2987 } |
| 2988 var set_value = _toInt64(value); | 2988 var set_value = _toInt64(value); |
| 2989 if (endian !== Endianness.HOST_ENDIAN) { | 2989 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 2990 set_value = _toEndianInt64(set_value, endian._littleEndian); | 2990 set_value = _toEndianInt64(set_value, endian._littleEndian); |
| 2991 } | 2991 } |
| 2992 _typeddata._setInt64(_offset + byteOffset, set_value); | 2992 _typeddata._setInt64(_offset + byteOffset, set_value); |
| 2993 } | 2993 } |
| 2994 | 2994 |
| 2995 int getUint64(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { | 2995 int getUint64(int byteOffset, [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 2996 if (byteOffset < 0 || byteOffset >= length) { | 2996 if (byteOffset < 0 || byteOffset >= length) { |
| 2997 _throwRangeError(byteOffset, length); | 2997 _throwRangeError(byteOffset, length); |
| 2998 } | 2998 } |
| 2999 var result = _typeddata._getUint64(_offset + byteOffset); | 2999 var result = _typeddata._getUint64(_offset + byteOffset); |
| 3000 if (endian === Endianness.HOST_ENDIAN) { | 3000 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 3001 return result; | 3001 return result; |
| 3002 } | 3002 } |
| 3003 return _toEndianUint64(result, endian._littleEndian); | 3003 return _toEndianUint64(result, endian._littleEndian); |
| 3004 } | 3004 } |
| 3005 void setUint64(int byteOffset, | 3005 void setUint64(int byteOffset, |
| 3006 int value, | 3006 int value, |
| 3007 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3007 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3008 if (byteOffset < 0 || byteOffset >= length) { | 3008 if (byteOffset < 0 || byteOffset >= length) { |
| 3009 _throwRangeError(byteOffset, length); | 3009 _throwRangeError(byteOffset, length); |
| 3010 } | 3010 } |
| 3011 var set_value = _toUint64(value); | 3011 var set_value = _toUint64(value); |
| 3012 if (endian !== Endianness.HOST_ENDIAN) { | 3012 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 3013 set_value = _toEndianUint64(set_value, endian._littleEndian); | 3013 set_value = _toEndianUint64(set_value, endian._littleEndian); |
| 3014 } | 3014 } |
| 3015 _typeddata._setUint64(_offset + byteOffset, set_value); | 3015 _typeddata._setUint64(_offset + byteOffset, set_value); |
| 3016 } | 3016 } |
| 3017 | 3017 |
| 3018 double getFloat32(int byteOffset, | 3018 double getFloat32(int byteOffset, |
| 3019 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3019 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3020 if (byteOffset < 0 || byteOffset >= length) { | 3020 if (byteOffset < 0 || byteOffset >= length) { |
| 3021 _throwRangeError(byteOffset, length); | 3021 _throwRangeError(byteOffset, length); |
| 3022 } | 3022 } |
| 3023 var result = _typeddata._getFloat32(_offset + byteOffset); | 3023 var result = _typeddata._getFloat32(_offset + byteOffset); |
| 3024 if (endian === Endianness.HOST_ENDIAN) { | 3024 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 3025 return result; | 3025 return result; |
| 3026 } | 3026 } |
| 3027 return _toEndianFloat32(result, endian._littleEndian); | 3027 return _toEndianFloat32(result, endian._littleEndian); |
| 3028 } | 3028 } |
| 3029 void setFloat32(int byteOffset, | 3029 void setFloat32(int byteOffset, |
| 3030 double value, | 3030 double value, |
| 3031 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3031 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3032 if (byteOffset < 0 || byteOffset >= length) { | 3032 if (byteOffset < 0 || byteOffset >= length) { |
| 3033 _throwRangeError(byteOffset, length); | 3033 _throwRangeError(byteOffset, length); |
| 3034 } | 3034 } |
| 3035 var set_value = value; | 3035 var set_value = value; |
| 3036 if (endian !== Endianness.HOST_ENDIAN) { | 3036 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 3037 set_value = _toEndianFloat32(set_value, endian._littleEndian); | 3037 set_value = _toEndianFloat32(set_value, endian._littleEndian); |
| 3038 } | 3038 } |
| 3039 _typeddata._setFloat32(_offset + byteOffset, set_value); | 3039 _typeddata._setFloat32(_offset + byteOffset, set_value); |
| 3040 } | 3040 } |
| 3041 | 3041 |
| 3042 double getFloat64(int byteOffset, | 3042 double getFloat64(int byteOffset, |
| 3043 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3043 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3044 if (byteOffset < 0 || byteOffset >= length) { | 3044 if (byteOffset < 0 || byteOffset >= length) { |
| 3045 _throwRangeError(byteOffset, length); | 3045 _throwRangeError(byteOffset, length); |
| 3046 } | 3046 } |
| 3047 var result = _typeddata._getFloat64(_offset + byteOffset); | 3047 var result = _typeddata._getFloat64(_offset + byteOffset); |
| 3048 if (endian === Endianness.HOST_ENDIAN) { | 3048 if (identical(endian, Endianness.HOST_ENDIAN)) { |
| 3049 return result; | 3049 return result; |
| 3050 } | 3050 } |
| 3051 return _toEndianFloat64(result, endian._littleEndian); | 3051 return _toEndianFloat64(result, endian._littleEndian); |
| 3052 } | 3052 } |
| 3053 void setFloat64(int byteOffset, | 3053 void setFloat64(int byteOffset, |
| 3054 double value, | 3054 double value, |
| 3055 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3055 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3056 if (byteOffset < 0 || byteOffset >= length) { | 3056 if (byteOffset < 0 || byteOffset >= length) { |
| 3057 _throwRangeError(byteOffset, length); | 3057 _throwRangeError(byteOffset, length); |
| 3058 } | 3058 } |
| 3059 var set_value = value; | 3059 var set_value = value; |
| 3060 if (endian !== Endianness.HOST_ENDIAN) { | 3060 if (!identical(endian, Endianness.HOST_ENDIAN)) { |
| 3061 set_value = _toEndianFloat64(set_value, endian._littleEndian); | 3061 set_value = _toEndianFloat64(set_value, endian._littleEndian); |
| 3062 } | 3062 } |
| 3063 _typeddata._setFloat64(_offset + byteOffset, set_value); | 3063 _typeddata._setFloat64(_offset + byteOffset, set_value); |
| 3064 } | 3064 } |
| 3065 | 3065 |
| 3066 Float32x4 getFloat32x4(int byteOffset, | 3066 Float32x4 getFloat32x4(int byteOffset, |
| 3067 [Endianness endian = Endianness.BIG_ENDIAN]) { | 3067 [Endianness endian = Endianness.BIG_ENDIAN]) { |
| 3068 if (byteOffset < 0 || byteOffset >= length) { | 3068 if (byteOffset < 0 || byteOffset >= length) { |
| 3069 _throwRangeError(byteOffset, length); | 3069 _throwRangeError(byteOffset, length); |
| 3070 } | 3070 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3182 return value; | 3182 return value; |
| 3183 } | 3183 } |
| 3184 return object; | 3184 return object; |
| 3185 } | 3185 } |
| 3186 | 3186 |
| 3187 | 3187 |
| 3188 void _throwRangeError(int index, int length) { | 3188 void _throwRangeError(int index, int length) { |
| 3189 String message = "$index must be in the range [0..$length)"; | 3189 String message = "$index must be in the range [0..$length)"; |
| 3190 throw new RangeError(message); | 3190 throw new RangeError(message); |
| 3191 } | 3191 } |
| OLD | NEW |