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

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

Issue 1384403002: Preparation for moving reusable handles to thread and more cleanups: isolate -> thread based handle… (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fixed import Created 5 years, 2 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
« no previous file with comments | « runtime/vm/coverage.cc ('k') | runtime/vm/debugger.cc » ('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/class_finalizer.h" 10 #include "vm/class_finalizer.h"
(...skipping 3886 matching lines...) Expand 10 before | Expand all | Expand 10 after
3897 DART_EXPORT Dart_Handle Dart_Allocate(Dart_Handle type) { 3897 DART_EXPORT Dart_Handle Dart_Allocate(Dart_Handle type) {
3898 DARTSCOPE(Thread::Current()); 3898 DARTSCOPE(Thread::Current());
3899 CHECK_CALLBACK_STATE(I); 3899 CHECK_CALLBACK_STATE(I);
3900 3900
3901 const Type& type_obj = Api::UnwrapTypeHandle(I, type); 3901 const Type& type_obj = Api::UnwrapTypeHandle(I, type);
3902 // Get the class to instantiate. 3902 // Get the class to instantiate.
3903 if (type_obj.IsNull()) { 3903 if (type_obj.IsNull()) {
3904 RETURN_TYPE_ERROR(I, type, Type); 3904 RETURN_TYPE_ERROR(I, type, Type);
3905 } 3905 }
3906 const Class& cls = Class::Handle(Z, type_obj.type_class()); 3906 const Class& cls = Class::Handle(Z, type_obj.type_class());
3907 const Error& error = Error::Handle(Z, cls.EnsureIsFinalized(I)); 3907 const Error& error = Error::Handle(Z, cls.EnsureIsFinalized(T));
3908 if (!error.IsNull()) { 3908 if (!error.IsNull()) {
3909 // An error occurred, return error object. 3909 // An error occurred, return error object.
3910 return Api::NewHandle(I, error.raw()); 3910 return Api::NewHandle(I, error.raw());
3911 } 3911 }
3912 return Api::NewHandle(I, AllocateObject(I, cls)); 3912 return Api::NewHandle(I, AllocateObject(I, cls));
3913 } 3913 }
3914 3914
3915 3915
3916 DART_EXPORT Dart_Handle Dart_AllocateWithNativeFields( 3916 DART_EXPORT Dart_Handle Dart_AllocateWithNativeFields(
3917 Dart_Handle type, 3917 Dart_Handle type,
3918 intptr_t num_native_fields, 3918 intptr_t num_native_fields,
3919 const intptr_t* native_fields) { 3919 const intptr_t* native_fields) {
3920 DARTSCOPE(Thread::Current()); 3920 DARTSCOPE(Thread::Current());
3921 CHECK_CALLBACK_STATE(I); 3921 CHECK_CALLBACK_STATE(I);
3922 3922
3923 const Type& type_obj = Api::UnwrapTypeHandle(I, type); 3923 const Type& type_obj = Api::UnwrapTypeHandle(I, type);
3924 // Get the class to instantiate. 3924 // Get the class to instantiate.
3925 if (type_obj.IsNull()) { 3925 if (type_obj.IsNull()) {
3926 RETURN_TYPE_ERROR(I, type, Type); 3926 RETURN_TYPE_ERROR(I, type, Type);
3927 } 3927 }
3928 if (native_fields == NULL) { 3928 if (native_fields == NULL) {
3929 RETURN_NULL_ERROR(native_fields); 3929 RETURN_NULL_ERROR(native_fields);
3930 } 3930 }
3931 const Class& cls = Class::Handle(Z, type_obj.type_class()); 3931 const Class& cls = Class::Handle(Z, type_obj.type_class());
3932 const Error& error = Error::Handle(Z, cls.EnsureIsFinalized(I)); 3932 const Error& error = Error::Handle(Z, cls.EnsureIsFinalized(T));
3933 if (!error.IsNull()) { 3933 if (!error.IsNull()) {
3934 // An error occurred, return error object. 3934 // An error occurred, return error object.
3935 return Api::NewHandle(I, error.raw()); 3935 return Api::NewHandle(I, error.raw());
3936 } 3936 }
3937 if (num_native_fields != cls.num_native_fields()) { 3937 if (num_native_fields != cls.num_native_fields()) {
3938 return Api::NewError( 3938 return Api::NewError(
3939 "%s: invalid number of native fields %" Pd " passed in, expected %d", 3939 "%s: invalid number of native fields %" Pd " passed in, expected %d",
3940 CURRENT_FUNC, num_native_fields, cls.num_native_fields()); 3940 CURRENT_FUNC, num_native_fields, cls.num_native_fields());
3941 } 3941 }
3942 const Instance& instance = Instance::Handle(Z, AllocateObject(I, cls)); 3942 const Instance& instance = Instance::Handle(Z, AllocateObject(I, cls));
(...skipping 2112 matching lines...) Expand 10 before | Expand all | Expand 10 after
6055 ApiReallocate); 6055 ApiReallocate);
6056 writer.WriteFullSnapshot(); 6056 writer.WriteFullSnapshot();
6057 *vm_isolate_snapshot_size = writer.VmIsolateSnapshotSize(); 6057 *vm_isolate_snapshot_size = writer.VmIsolateSnapshotSize();
6058 *isolate_snapshot_size = writer.IsolateSnapshotSize(); 6058 *isolate_snapshot_size = writer.IsolateSnapshotSize();
6059 *instructions_snapshot_size = writer.InstructionsSnapshotSize(); 6059 *instructions_snapshot_size = writer.InstructionsSnapshotSize();
6060 6060
6061 return Api::Success(); 6061 return Api::Success();
6062 } 6062 }
6063 6063
6064 } // namespace dart 6064 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/coverage.cc ('k') | runtime/vm/debugger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698