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

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

Issue 1859273002: Add flag to disable string externalization (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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/constant_propagator.cc ('k') | runtime/vm/dart_api_impl_test.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 "lib/stacktrace.h" 10 #include "lib/stacktrace.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 52
53 53
54 DECLARE_FLAG(bool, print_class_table); 54 DECLARE_FLAG(bool, print_class_table);
55 DECLARE_FLAG(bool, verify_handles); 55 DECLARE_FLAG(bool, verify_handles);
56 #if defined(DART_NO_SNAPSHOT) 56 #if defined(DART_NO_SNAPSHOT)
57 DEFINE_FLAG(bool, check_function_fingerprints, true, 57 DEFINE_FLAG(bool, check_function_fingerprints, true,
58 "Check function fingerprints"); 58 "Check function fingerprints");
59 #endif // defined(DART_NO_SNAPSHOT). 59 #endif // defined(DART_NO_SNAPSHOT).
60 DEFINE_FLAG(bool, verify_acquired_data, false, 60 DEFINE_FLAG(bool, verify_acquired_data, false,
61 "Verify correct API acquire/release of typed data."); 61 "Verify correct API acquire/release of typed data.");
62 DEFINE_FLAG(bool, support_externalizable_strings, true,
63 "Support Dart_MakeExternalString.");
64
62 65
63 ThreadLocalKey Api::api_native_key_ = kUnsetThreadLocalKey; 66 ThreadLocalKey Api::api_native_key_ = kUnsetThreadLocalKey;
64 Dart_Handle Api::true_handle_ = NULL; 67 Dart_Handle Api::true_handle_ = NULL;
65 Dart_Handle Api::false_handle_ = NULL; 68 Dart_Handle Api::false_handle_ = NULL;
66 Dart_Handle Api::null_handle_ = NULL; 69 Dart_Handle Api::null_handle_ = NULL;
67 Dart_Handle Api::empty_string_handle_ = NULL; 70 Dart_Handle Api::empty_string_handle_ = NULL;
68 71
69 72
70 const char* CanonicalFunction(const char* func) { 73 const char* CanonicalFunction(const char* func) {
71 if (strncmp(func, "dart::", 6) == 0) { 74 if (strncmp(func, "dart::", 6) == 0) {
(...skipping 2440 matching lines...) Expand 10 before | Expand all | Expand 10 after
2512 return Api::Success(); 2515 return Api::Success();
2513 } 2516 }
2514 2517
2515 2518
2516 DART_EXPORT Dart_Handle Dart_MakeExternalString(Dart_Handle str, 2519 DART_EXPORT Dart_Handle Dart_MakeExternalString(Dart_Handle str,
2517 void* array, 2520 void* array,
2518 intptr_t length, 2521 intptr_t length,
2519 void* peer, 2522 void* peer,
2520 Dart_PeerFinalizer cback) { 2523 Dart_PeerFinalizer cback) {
2521 DARTSCOPE(Thread::Current()); 2524 DARTSCOPE(Thread::Current());
2525 if (!FLAG_support_externalizable_strings) {
2526 return Api::NewError("Dart_MakeExternalString with "
2527 "--support_externalizable_strings=false");
2528 }
2522 const String& str_obj = Api::UnwrapStringHandle(Z, str); 2529 const String& str_obj = Api::UnwrapStringHandle(Z, str);
2523 if (str_obj.IsExternal()) { 2530 if (str_obj.IsExternal()) {
2524 return str; // String is already an external string. 2531 return str; // String is already an external string.
2525 } 2532 }
2526 if (str_obj.IsNull()) { 2533 if (str_obj.IsNull()) {
2527 RETURN_TYPE_ERROR(Z, str, String); 2534 RETURN_TYPE_ERROR(Z, str, String);
2528 } 2535 }
2529 if (array == NULL) { 2536 if (array == NULL) {
2530 RETURN_NULL_ERROR(array); 2537 RETURN_NULL_ERROR(array);
2531 } 2538 }
(...skipping 3581 matching lines...) Expand 10 before | Expand all | Expand 10 after
6113 return Api::Success(); 6120 return Api::Success();
6114 } 6121 }
6115 #endif // DART_PRECOMPILER 6122 #endif // DART_PRECOMPILER
6116 6123
6117 6124
6118 DART_EXPORT bool Dart_IsRunningPrecompiledCode() { 6125 DART_EXPORT bool Dart_IsRunningPrecompiledCode() {
6119 return Dart::IsRunningPrecompiledCode(); 6126 return Dart::IsRunningPrecompiledCode();
6120 } 6127 }
6121 6128
6122 } // namespace dart 6129 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/constant_propagator.cc ('k') | runtime/vm/dart_api_impl_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698