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

Unified Diff: vm/dart_api_impl.cc

Issue 8523036: Report an error when Dart_ListGetAsBytes does not get an integer list. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698