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. |