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

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

Issue 2987183002: [vm] Revise Dart_IntegerToHexCString to avoid dependency on Bigint (Closed)
Patch Set: Virtual methods grouped together Created 3 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
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl_test.cc » ('j') | runtime/vm/object.cc » ('J')
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 "lib/stacktrace.h" 9 #include "lib/stacktrace.h"
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 2172 matching lines...) Expand 10 before | Expand all | Expand 10 after
2183 2183
2184 DART_EXPORT Dart_Handle Dart_IntegerToHexCString(Dart_Handle integer, 2184 DART_EXPORT Dart_Handle Dart_IntegerToHexCString(Dart_Handle integer,
2185 const char** value) { 2185 const char** value) {
2186 API_TIMELINE_DURATION; 2186 API_TIMELINE_DURATION;
2187 DARTSCOPE(Thread::Current()); 2187 DARTSCOPE(Thread::Current());
2188 const Integer& int_obj = Api::UnwrapIntegerHandle(Z, integer); 2188 const Integer& int_obj = Api::UnwrapIntegerHandle(Z, integer);
2189 if (int_obj.IsNull()) { 2189 if (int_obj.IsNull()) {
2190 RETURN_TYPE_ERROR(Z, integer, Integer); 2190 RETURN_TYPE_ERROR(Z, integer, Integer);
2191 } 2191 }
2192 Zone* scope_zone = Api::TopScope(Thread::Current())->zone(); 2192 Zone* scope_zone = Api::TopScope(Thread::Current())->zone();
2193 if (int_obj.IsSmi() || int_obj.IsMint()) { 2193 *value = int_obj.ToHexCString(scope_zone);
2194 const Bigint& bigint =
2195 Bigint::Handle(Z, Bigint::NewFromInt64(int_obj.AsInt64Value()));
2196 *value = bigint.ToHexCString(scope_zone);
2197 } else {
2198 *value = Bigint::Cast(int_obj).ToHexCString(scope_zone);
2199 }
2200 return Api::Success(); 2194 return Api::Success();
2201 } 2195 }
2202 2196
2203 DART_EXPORT Dart_Handle Dart_NewDouble(double value) { 2197 DART_EXPORT Dart_Handle Dart_NewDouble(double value) {
2204 DARTSCOPE(Thread::Current()); 2198 DARTSCOPE(Thread::Current());
2205 CHECK_CALLBACK_STATE(T); 2199 CHECK_CALLBACK_STATE(T);
2206 return Api::NewHandle(T, Double::New(value)); 2200 return Api::NewHandle(T, Double::New(value));
2207 } 2201 }
2208 2202
2209 DART_EXPORT Dart_Handle Dart_DoubleValue(Dart_Handle double_obj, 2203 DART_EXPORT Dart_Handle Dart_DoubleValue(Dart_Handle double_obj,
(...skipping 4536 matching lines...) Expand 10 before | Expand all | Expand 10 after
6746 #endif 6740 #endif
6747 } 6741 }
6748 6742
6749 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) { 6743 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) {
6750 #ifndef PRODUCT 6744 #ifndef PRODUCT
6751 Profiler::DumpStackTrace(context); 6745 Profiler::DumpStackTrace(context);
6752 #endif 6746 #endif
6753 } 6747 }
6754 6748
6755 } // namespace dart 6749 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/dart_api_impl_test.cc » ('j') | runtime/vm/object.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698