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

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

Issue 2980043002: Cleanup unused Dart API Dart_IdentityHash (Closed)
Patch Set: Created 3 years, 5 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/include/dart_api.h ('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 "lib/stacktrace.h" 9 #include "lib/stacktrace.h"
10 #include "platform/assert.h" 10 #include "platform/assert.h"
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 } 908 }
909 } 909 }
910 const Object& object1 = Object::Handle(Z, Api::UnwrapHandle(obj1)); 910 const Object& object1 = Object::Handle(Z, Api::UnwrapHandle(obj1));
911 const Object& object2 = Object::Handle(Z, Api::UnwrapHandle(obj2)); 911 const Object& object2 = Object::Handle(Z, Api::UnwrapHandle(obj2));
912 if (object1.IsInstance() && object2.IsInstance()) { 912 if (object1.IsInstance() && object2.IsInstance()) {
913 return Instance::Cast(object1).IsIdenticalTo(Instance::Cast(object2)); 913 return Instance::Cast(object1).IsIdenticalTo(Instance::Cast(object2));
914 } 914 }
915 return false; 915 return false;
916 } 916 }
917 917
918 DART_EXPORT uint64_t Dart_IdentityHash(Dart_Handle obj) {
919 DARTSCOPE(Thread::Current());
920
921 const Object& object = Object::Handle(Z, Api::UnwrapHandle(obj));
922 if (!object.IsInstance() && !object.IsNull()) {
923 return 0;
924 }
925
926 const Library& libcore = Library::Handle(Z, Library::CoreLibrary());
927 const String& function_name =
928 String::Handle(Z, String::New("identityHashCode"));
929 const Function& function =
930 Function::Handle(Z, libcore.LookupFunctionAllowPrivate(function_name));
931 if (function.IsNull()) {
932 UNREACHABLE();
933 return 0;
934 }
935
936 const Array& arguments = Array::Handle(Z, Array::New(1));
937 arguments.SetAt(0, object);
938 const Object& result =
939 Object::Handle(Z, DartEntry::InvokeFunction(function, arguments));
940
941 if (result.IsSmi()) {
942 return Smi::Cast(result).Value();
943 }
944 if (result.IsMint()) {
945 const Mint& mint = Mint::Cast(result);
946 if (!mint.IsNegative()) {
947 return mint.AsInt64Value();
948 }
949 }
950 if (result.IsBigint()) {
951 const Bigint& bigint = Bigint::Cast(result);
952 if (bigint.FitsIntoUint64()) {
953 return bigint.AsUint64Value();
954 }
955 }
956 return 0;
957 }
958
959 DART_EXPORT Dart_Handle 918 DART_EXPORT Dart_Handle
960 Dart_HandleFromPersistent(Dart_PersistentHandle object) { 919 Dart_HandleFromPersistent(Dart_PersistentHandle object) {
961 Thread* thread = Thread::Current(); 920 Thread* thread = Thread::Current();
962 Isolate* isolate = thread->isolate(); 921 Isolate* isolate = thread->isolate();
963 CHECK_ISOLATE(isolate); 922 CHECK_ISOLATE(isolate);
964 NoSafepointScope no_safepoint_scope; 923 NoSafepointScope no_safepoint_scope;
965 ApiState* state = isolate->api_state(); 924 ApiState* state = isolate->api_state();
966 ASSERT(state != NULL); 925 ASSERT(state != NULL);
967 PersistentHandle* ref = PersistentHandle::Cast(object); 926 PersistentHandle* ref = PersistentHandle::Cast(object);
968 return Api::NewHandle(thread, ref->raw()); 927 return Api::NewHandle(thread, ref->raw());
(...skipping 5728 matching lines...) Expand 10 before | Expand all | Expand 10 after
6697 #endif 6656 #endif
6698 } 6657 }
6699 6658
6700 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) { 6659 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) {
6701 #ifndef PRODUCT 6660 #ifndef PRODUCT
6702 Profiler::DumpStackTrace(context); 6661 Profiler::DumpStackTrace(context);
6703 #endif 6662 #endif
6704 } 6663 }
6705 6664
6706 } // namespace dart 6665 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/include/dart_api.h ('k') | runtime/vm/dart_api_impl_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698