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

Side by Side Diff: runtime/vm/dart_api_impl.cc

Issue 23072026: fix cpp11 compile errors (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 4 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/dart_api_impl.h ('k') | runtime/vm/dart_api_state.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "include/dart_api.h" 5 #include "include/dart_api.h"
6 #include "include/dart_mirrors_api.h" 6 #include "include/dart_mirrors_api.h"
7 #include "include/dart_native_api.h" 7 #include "include/dart_native_api.h"
8 8
9 #include "platform/assert.h" 9 #include "platform/assert.h"
10 #include "vm/bigint_operations.h" 10 #include "vm/bigint_operations.h"
(...skipping 1818 matching lines...) Expand 10 before | Expand all | Expand 10 after
1829 if (str_obj.IsNull()) { 1829 if (str_obj.IsNull()) {
1830 RETURN_TYPE_ERROR(isolate, str, String); 1830 RETURN_TYPE_ERROR(isolate, str, String);
1831 } 1831 }
1832 if (array == NULL) { 1832 if (array == NULL) {
1833 RETURN_NULL_ERROR(array); 1833 RETURN_NULL_ERROR(array);
1834 } 1834 }
1835 intptr_t str_size = (str_obj.Length() * str_obj.CharSize()); 1835 intptr_t str_size = (str_obj.Length() * str_obj.CharSize());
1836 if ((length < str_size) || (length > String::kMaxElements)) { 1836 if ((length < str_size) || (length > String::kMaxElements)) {
1837 return Api::NewError("Dart_MakeExternalString " 1837 return Api::NewError("Dart_MakeExternalString "
1838 "expects argument length to be in the range" 1838 "expects argument length to be in the range"
1839 "[%"Pd"..%"Pd"].", 1839 "[%" Pd "..%" Pd "].",
1840 str_size, String::kMaxElements); 1840 str_size, String::kMaxElements);
1841 } 1841 }
1842 if (str_obj.InVMHeap()) { 1842 if (str_obj.InVMHeap()) {
1843 // Since the string object is read only we do not externalize 1843 // Since the string object is read only we do not externalize
1844 // the string but instead copy the contents of the string into the 1844 // the string but instead copy the contents of the string into the
1845 // specified buffer and return a Null object. 1845 // specified buffer and return a Null object.
1846 // This ensures that the embedder does not have to call again 1846 // This ensures that the embedder does not have to call again
1847 // to get at the contents. 1847 // to get at the contents.
1848 intptr_t copy_len = str_obj.Length(); 1848 intptr_t copy_len = str_obj.Length();
1849 if (str_obj.IsOneByteString()) { 1849 if (str_obj.IsOneByteString()) {
(...skipping 2022 matching lines...) Expand 10 before | Expand all | Expand 10 after
3872 RETURN_NULL_ERROR(buffer); 3872 RETURN_NULL_ERROR(buffer);
3873 } 3873 }
3874 NoHeapGrowthControlScope no_growth_control; 3874 NoHeapGrowthControlScope no_growth_control;
3875 3875
3876 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer); 3876 const Snapshot* snapshot = Snapshot::SetupFromBuffer(buffer);
3877 if (!snapshot->IsScriptSnapshot()) { 3877 if (!snapshot->IsScriptSnapshot()) {
3878 return Api::NewError("%s expects parameter 'buffer' to be a script type" 3878 return Api::NewError("%s expects parameter 'buffer' to be a script type"
3879 " snapshot.", CURRENT_FUNC); 3879 " snapshot.", CURRENT_FUNC);
3880 } 3880 }
3881 if (snapshot->length() != buffer_len) { 3881 if (snapshot->length() != buffer_len) {
3882 return Api::NewError("%s: 'buffer_len' of %"Pd" is not equal to %d which" 3882 return Api::NewError("%s: 'buffer_len' of %" Pd " is not equal to %d which"
3883 " is the expected length in the snapshot.", 3883 " is the expected length in the snapshot.",
3884 CURRENT_FUNC, buffer_len, snapshot->length()); 3884 CURRENT_FUNC, buffer_len, snapshot->length());
3885 } 3885 }
3886 Library& library = 3886 Library& library =
3887 Library::Handle(isolate, isolate->object_store()->root_library()); 3887 Library::Handle(isolate, isolate->object_store()->root_library());
3888 if (!library.IsNull()) { 3888 if (!library.IsNull()) {
3889 const String& library_url = String::Handle(isolate, library.url()); 3889 const String& library_url = String::Handle(isolate, library.url());
3890 return Api::NewError("%s: A script has already been loaded from '%s'.", 3890 return Api::NewError("%s: A script has already been loaded from '%s'.",
3891 CURRENT_FUNC, library_url.ToCString()); 3891 CURRENT_FUNC, library_url.ToCString());
3892 } 3892 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3974 if (!ambiguity_error_msg.IsNull()) { 3974 if (!ambiguity_error_msg.IsNull()) {
3975 return Api::NewError("%s.", ambiguity_error_msg.ToCString()); 3975 return Api::NewError("%s.", ambiguity_error_msg.ToCString());
3976 } 3976 }
3977 const String& lib_name = String::Handle(isolate, lib.name()); 3977 const String& lib_name = String::Handle(isolate, lib.name());
3978 return Api::NewError("Type '%s' not found in library '%s'.", 3978 return Api::NewError("Type '%s' not found in library '%s'.",
3979 name_str.ToCString(), lib_name.ToCString()); 3979 name_str.ToCString(), lib_name.ToCString());
3980 } 3980 }
3981 if (cls.NumTypeArguments() == 0) { 3981 if (cls.NumTypeArguments() == 0) {
3982 if (number_of_type_arguments != 0) { 3982 if (number_of_type_arguments != 0) {
3983 return Api::NewError("Invalid number of type arguments specified, " 3983 return Api::NewError("Invalid number of type arguments specified, "
3984 "got %"Pd" expected 0", number_of_type_arguments); 3984 "got %" Pd " expected 0", number_of_type_arguments);
3985 } 3985 }
3986 return Api::NewHandle(isolate, Type::NewNonParameterizedType(cls)); 3986 return Api::NewHandle(isolate, Type::NewNonParameterizedType(cls));
3987 } 3987 }
3988 intptr_t num_expected_type_arguments = cls.NumTypeParameters(); 3988 intptr_t num_expected_type_arguments = cls.NumTypeParameters();
3989 TypeArguments& type_args_obj = TypeArguments::Handle(); 3989 TypeArguments& type_args_obj = TypeArguments::Handle();
3990 if (number_of_type_arguments > 0) { 3990 if (number_of_type_arguments > 0) {
3991 if (type_arguments == NULL) { 3991 if (type_arguments == NULL) {
3992 RETURN_NULL_ERROR(type_arguments); 3992 RETURN_NULL_ERROR(type_arguments);
3993 } 3993 }
3994 if (num_expected_type_arguments != number_of_type_arguments) { 3994 if (num_expected_type_arguments != number_of_type_arguments) {
3995 return Api::NewError("Invalid number of type arguments specified, " 3995 return Api::NewError("Invalid number of type arguments specified, "
3996 "got %"Pd" expected %"Pd, 3996 "got %" Pd " expected %" Pd,
3997 number_of_type_arguments, 3997 number_of_type_arguments,
3998 num_expected_type_arguments); 3998 num_expected_type_arguments);
3999 } 3999 }
4000 const Array& array = Api::UnwrapArrayHandle(isolate, *type_arguments); 4000 const Array& array = Api::UnwrapArrayHandle(isolate, *type_arguments);
4001 if (array.IsNull()) { 4001 if (array.IsNull()) {
4002 RETURN_TYPE_ERROR(isolate, *type_arguments, Array); 4002 RETURN_TYPE_ERROR(isolate, *type_arguments, Array);
4003 } 4003 }
4004 if (array.Length() != num_expected_type_arguments) { 4004 if (array.Length() != num_expected_type_arguments) {
4005 return Api::NewError("Invalid type arguments specified, expected an " 4005 return Api::NewError("Invalid type arguments specified, expected an "
4006 "array of len %"Pd" but got an array of len %"Pd, 4006 "array of len %" Pd " but got an array of len %" Pd,
4007 number_of_type_arguments, 4007 number_of_type_arguments,
4008 array.Length()); 4008 array.Length());
4009 } 4009 }
4010 // Set up the type arguments array. 4010 // Set up the type arguments array.
4011 type_args_obj ^= TypeArguments::New(num_expected_type_arguments); 4011 type_args_obj ^= TypeArguments::New(num_expected_type_arguments);
4012 AbstractType& type_arg = AbstractType::Handle(); 4012 AbstractType& type_arg = AbstractType::Handle();
4013 for (intptr_t i = 0; i < number_of_type_arguments; i++) { 4013 for (intptr_t i = 0; i < number_of_type_arguments; i++) {
4014 type_arg ^= array.At(i); 4014 type_arg ^= array.At(i);
4015 type_args_obj.SetTypeAt(i, type_arg); 4015 type_args_obj.SetTypeAt(i, type_arg);
4016 } 4016 }
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
4249 } 4249 }
4250 { 4250 {
4251 NoGCScope no_gc; 4251 NoGCScope no_gc;
4252 RawObject* raw_obj = obj.raw(); 4252 RawObject* raw_obj = obj.raw();
4253 isolate->heap()->SetPeer(raw_obj, peer); 4253 isolate->heap()->SetPeer(raw_obj, peer);
4254 } 4254 }
4255 return Api::Success(); 4255 return Api::Success();
4256 } 4256 }
4257 4257
4258 } // namespace dart 4258 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl.h ('k') | runtime/vm/dart_api_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698