Chromium Code Reviews| Index: vm/dart_api_impl.cc |
| =================================================================== |
| --- vm/dart_api_impl.cc (revision 1581) |
| +++ vm/dart_api_impl.cc (working copy) |
| @@ -1127,6 +1127,10 @@ |
| Integer& integer = Integer::Handle(); |
| for (int i = 0; i < length; i++) { |
| element = array_obj.At(offset + i); |
| + if (!element.IsInteger()) { |
| + return Api::Error("%s expects the argument 'list' to be " |
| + "a list of integers", CURRENT_FUNC); |
|
turnidge
2011/11/16 18:56:45
I don't know if we capitalize Integer here or not.
siva
2011/11/16 18:59:08
Our official type name is int, maybe I should re w
|
| + } |
| integer ^= element.raw(); |
| native_array[i] = static_cast<uint8_t>(integer.AsInt64Value() & 0xff); |
| ASSERT(integer.AsInt64Value() <= 0xff); |
| @@ -1154,6 +1158,10 @@ |
| if (Dart_IsError(result)) { |
| return result; // Error condition. |
| } |
| + if (!element.IsInteger()) { |
| + return Api::Error("%s expects the argument 'list' to be " |
| + "a list of integers", CURRENT_FUNC); |
| + } |
| intobj ^= element.raw(); |
| ASSERT(intobj.AsInt64Value() <= 0xff); |
| // TODO(hpayer): value should always be smaller then 0xff. Add error |
| @@ -1249,7 +1257,7 @@ |
| Integer& integer = Integer::Handle(); |
| if ((offset + length) <= array_obj.Length()) { |
| for (int i = 0; i < length; i++) { |
| - integer ^= Integer::New(native_array[i]); |
| + integer = Integer::New(native_array[i]); |
| array_obj.SetAt(offset + i, integer); |
| } |
| return Api::Success(); |
| @@ -1269,7 +1277,7 @@ |
| Dart_Handle result; |
| for (int i = 0; i < length; i++) { |
| indexobj = Integer::New(offset + i); |
| - valueobj ^= Integer::New(native_array[i]); |
| + valueobj = Integer::New(native_array[i]); |
| SetListAt(isolate, instance, indexobj, valueobj, function, &result); |
| if (Dart_IsError(result)) { |
| return result; // Error condition. |