Chromium Code Reviews| Index: runtime/vm/dart_api_impl.cc |
| diff --git a/runtime/vm/dart_api_impl.cc b/runtime/vm/dart_api_impl.cc |
| index 95d3f0c26c92e8e5a68eea139b575d3fc09a0cfd..3a18102bc0511afebc9aac734d71e0f50f4dc012 100644 |
| --- a/runtime/vm/dart_api_impl.cc |
| +++ b/runtime/vm/dart_api_impl.cc |
| @@ -1989,10 +1989,7 @@ DART_EXPORT Dart_Handle Dart_ListSetAt(Dart_Handle list, |
| Isolate* isolate = Isolate::Current(); |
| DARTSCOPE(isolate); |
| const Object& obj = Object::Handle(isolate, Api::UnwrapHandle(list)); |
| - if (obj.IsArray()) { |
| - if (obj.IsImmutableArray()) { |
| - return Api::NewError("Cannot modify immutable array"); |
| - } |
| + if (obj.IsArray() && !obj.IsImmutableArray()) { |
|
Ivan Posva
2013/01/25 00:53:48
How about adding a comment that we let the Dart in
Mads Ager (google)
2013/01/29 10:15:13
Done. If index is out of bounds we still get an un
|
| SET_LIST_ELEMENT(isolate, Array, obj, index, value); |
| } else if (obj.IsGrowableObjectArray()) { |
| SET_LIST_ELEMENT(isolate, GrowableObjectArray, obj, index, value); |
| @@ -2153,10 +2150,7 @@ DART_EXPORT Dart_Handle Dart_ListSetAsBytes(Dart_Handle list, |
| return Api::Success(isolate); |
| } |
| return Api::NewError("Invalid length passed in to set list elements"); |
| - } else if (obj.IsArray()) { |
| - if (obj.IsImmutableArray()) { |
| - return Api::NewError("Cannot modify immutable array"); |
| - } |
| + } else if (obj.IsArray() && !obj.IsImmutableArray()) { |
|
Ivan Posva
2013/01/25 00:53:48
ditto.
Mads Ager (google)
2013/01/29 10:15:13
Done.
|
| SET_LIST_ELEMENT_AS_BYTES(isolate, |
| Array, |
| obj, |
| @@ -2173,7 +2167,7 @@ DART_EXPORT Dart_Handle Dart_ListSetAsBytes(Dart_Handle list, |
| } else if (obj.IsError()) { |
| return list; |
| } else { |
| - // Check and handle a dart object that implements the List interface. |
| + // Check and handle a dart object that implements the List interface. |
| const Instance& instance = |
| Instance::Handle(isolate, GetListInstance(isolate, obj)); |
| if (!instance.IsNull()) { |