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

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

Issue 181843007: 1. Added new versions of Api::UnWrapStringHandle Api::UnWrapInstanceHandle to (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 9 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 | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | runtime/vm/dart_api_impl.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 #ifndef VM_DART_API_IMPL_H_ 5 #ifndef VM_DART_API_IMPL_H_
6 #define VM_DART_API_IMPL_H_ 6 #define VM_DART_API_IMPL_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/native_arguments.h" 9 #include "vm/native_arguments.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
11 11
12 namespace dart { 12 namespace dart {
13 13
14 DECLARE_FLAG(bool, trace_api); 14 DECLARE_FLAG(bool, trace_api);
15 15
16 class ApiLocalScope; 16 class ApiLocalScope;
17 class ApiState; 17 class ApiState;
18 class FinalizablePersistentHandle; 18 class FinalizablePersistentHandle;
19 class LocalHandle; 19 class LocalHandle;
20 class PersistentHandle; 20 class PersistentHandle;
21 class ReusableObjectHandleScope;
21 22
22 const char* CanonicalFunction(const char* func); 23 const char* CanonicalFunction(const char* func);
23 24
24 #define CURRENT_FUNC CanonicalFunction(__FUNCTION__) 25 #define CURRENT_FUNC CanonicalFunction(__FUNCTION__)
25 26
26 #if defined(DEBUG) 27 #if defined(DEBUG)
27 #define TRACE_API_CALL(name) \ 28 #define TRACE_API_CALL(name) \
28 if (FLAG_trace_api) { \ 29 if (FLAG_trace_api) { \
29 OS::Print("Calling API func: %s\n", name); \ 30 OS::Print("Calling API func: %s\n", name); \
30 } 31 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 static RawObject* UnwrapHandle(Dart_Handle object); 116 static RawObject* UnwrapHandle(Dart_Handle object);
116 117
117 // Unwraps a raw Type from the handle. The handle will be null if 118 // Unwraps a raw Type from the handle. The handle will be null if
118 // the object was not of the requested Type. 119 // the object was not of the requested Type.
119 #define DECLARE_UNWRAP(Type) \ 120 #define DECLARE_UNWRAP(Type) \
120 static const Type& Unwrap##Type##Handle(Isolate* isolate, \ 121 static const Type& Unwrap##Type##Handle(Isolate* isolate, \
121 Dart_Handle object); 122 Dart_Handle object);
122 CLASS_LIST_FOR_HANDLES(DECLARE_UNWRAP) 123 CLASS_LIST_FOR_HANDLES(DECLARE_UNWRAP)
123 #undef DECLARE_UNWRAP 124 #undef DECLARE_UNWRAP
124 125
126 // Unwraps the raw object from the handle using a reused handle.
127 static const String& UnwrapStringHandle(
128 const ReusableObjectHandleScope& reused, Dart_Handle object);
129 static const Instance& UnwrapInstanceHandle(
130 const ReusableObjectHandleScope& reused, Dart_Handle object);
131
125 // Validates and converts the passed in handle as a persistent handle. 132 // Validates and converts the passed in handle as a persistent handle.
126 static PersistentHandle* UnwrapAsPersistentHandle( 133 static PersistentHandle* UnwrapAsPersistentHandle(
127 Dart_PersistentHandle object); 134 Dart_PersistentHandle object);
128 135
129 // Validates and converts the passed in handle as a weak persistent handle. 136 // Validates and converts the passed in handle as a weak persistent handle.
130 static FinalizablePersistentHandle* UnwrapAsWeakPersistentHandle( 137 static FinalizablePersistentHandle* UnwrapAsWeakPersistentHandle(
131 Dart_WeakPersistentHandle object); 138 Dart_WeakPersistentHandle object);
132 139
133 // Validates and converts the passed in handle as a prologue weak 140 // Validates and converts the passed in handle as a prologue weak
134 // persistent handle. 141 // persistent handle.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // Retrieves the top ApiLocalScope. 205 // Retrieves the top ApiLocalScope.
199 static ApiLocalScope* TopScope(Isolate* isolate); 206 static ApiLocalScope* TopScope(Isolate* isolate);
200 207
201 // Performs one-time initialization needed by the API. 208 // Performs one-time initialization needed by the API.
202 static void InitOnce(); 209 static void InitOnce();
203 210
204 // Allocates handles for objects in the VM isolate. 211 // Allocates handles for objects in the VM isolate.
205 static void InitHandles(); 212 static void InitHandles();
206 213
207 // Helper function to get the peer value of an external string object. 214 // Helper function to get the peer value of an external string object.
208 static bool StringGetPeerHelper(Dart_NativeArguments args, 215 static bool StringGetPeerHelper(NativeArguments* args,
209 int arg_index, 216 int arg_index,
210 void** peer); 217 void** peer);
211 218
212 // Helper function to get the native field from a native receiver argument. 219 // Helper function to get the native field from a native receiver argument.
213 static bool GetNativeReceiver(Dart_NativeArguments args, intptr_t* value); 220 static bool GetNativeReceiver(NativeArguments* args, intptr_t* value);
214 221
215 // Helper function to get the boolean value of a Bool native argument. 222 // Helper function to get the boolean value of a Bool native argument.
216 static bool GetNativeBooleanArgument(Dart_NativeArguments args, 223 static bool GetNativeBooleanArgument(NativeArguments* args,
217 int arg_index, 224 int arg_index,
218 bool* value); 225 bool* value);
219 226
220 // Helper function to set the return value of native functions. 227 // Helper function to set the return value of native functions.
221 static void SetReturnValue(NativeArguments* args, Dart_Handle retval) { 228 static void SetReturnValue(NativeArguments* args, Dart_Handle retval) {
222 args->SetReturnUnsafe(UnwrapHandle(retval)); 229 args->SetReturnUnsafe(UnwrapHandle(retval));
223 } 230 }
224 static void SetSmiReturnValue(NativeArguments* args, intptr_t retval) { 231 static void SetSmiReturnValue(NativeArguments* args, intptr_t retval) {
225 args->SetReturnUnsafe(Smi::New(retval)); 232 args->SetReturnUnsafe(Smi::New(retval));
226 } 233 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 if (isolate->no_callback_scope_depth() != 0) { \ 279 if (isolate->no_callback_scope_depth() != 0) { \
273 return reinterpret_cast<Dart_Handle>(Api::AcquiredError(isolate)); \ 280 return reinterpret_cast<Dart_Handle>(Api::AcquiredError(isolate)); \
274 } \ 281 } \
275 282
276 #define ASSERT_CALLBACK_STATE(isolate) \ 283 #define ASSERT_CALLBACK_STATE(isolate) \
277 ASSERT(isolate->no_callback_scope_depth() == 0) 284 ASSERT(isolate->no_callback_scope_depth() == 0)
278 285
279 } // namespace dart. 286 } // namespace dart.
280 287
281 #endif // VM_DART_API_IMPL_H_ 288 #endif // VM_DART_API_IMPL_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl.cc » ('j') | runtime/vm/dart_api_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698