OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 "vm/flow_graph_builder.h" | 5 #include "vm/flow_graph_builder.h" |
6 | 6 |
7 #include "lib/invocation_mirror.h" | 7 #include "lib/invocation_mirror.h" |
8 #include "vm/ast_printer.h" | 8 #include "vm/ast_printer.h" |
9 #include "vm/code_descriptors.h" | 9 #include "vm/code_descriptors.h" |
10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
(...skipping 1960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1971 } | 1971 } |
1972 | 1972 |
1973 | 1973 |
1974 // List of recognized list factories in core lib: | 1974 // List of recognized list factories in core lib: |
1975 // (factory-name-symbol, result-cid, fingerprint). | 1975 // (factory-name-symbol, result-cid, fingerprint). |
1976 // TODO(srdjan): Store the values in the snapshot instead. | 1976 // TODO(srdjan): Store the values in the snapshot instead. |
1977 // TODO(srdjan): Add Float32x4List. | 1977 // TODO(srdjan): Add Float32x4List. |
1978 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ | 1978 #define RECOGNIZED_LIST_FACTORY_LIST(V) \ |
1979 V(ObjectArrayFactory, kArrayCid, 97987288) \ | 1979 V(ObjectArrayFactory, kArrayCid, 97987288) \ |
1980 V(GrowableObjectArrayWithData, kGrowableObjectArrayCid, 816132033) \ | 1980 V(GrowableObjectArrayWithData, kGrowableObjectArrayCid, 816132033) \ |
1981 V(GrowableObjectArrayFactory, kGrowableObjectArrayCid, 1896741574) \ | 1981 V(GrowableObjectArrayFactory, kGrowableObjectArrayCid, 224791427) \ |
1982 V(Int8ListFactory, kInt8ArrayCid, 817410959) \ | 1982 V(Int8ListFactory, kInt8ArrayCid, 216496111) \ |
1983 V(Uint8ListFactory, kUint8ArrayCid, 220896178) \ | 1983 V(Uint8ListFactory, kUint8ArrayCid, 1767464978) \ |
1984 V(Uint8ClampedListFactory, kUint8ClampedArrayCid, 422034060) \ | 1984 V(Uint8ClampedListFactory, kUint8ClampedArrayCid, 1968602860) \ |
1985 V(Int16ListFactory, kInt16ArrayCid, 214246025) \ | 1985 V(Int16ListFactory, kInt16ArrayCid, 1760814825) \ |
1986 V(Uint16ListFactory, kUint16ArrayCid, 137929963) \ | 1986 V(Uint16ListFactory, kUint16ArrayCid, 1684498763) \ |
1987 V(Int32ListFactory, kInt32ArrayCid, 1977571010) \ | 1987 V(Int32ListFactory, kInt32ArrayCid, 1376656162) \ |
1988 V(Uint32ListFactory, kUint32ArrayCid, 407638944) \ | 1988 V(Uint32ListFactory, kUint32ArrayCid, 1954207744) \ |
1989 V(Int64ListFactory, kInt64ArrayCid, 885130273) \ | 1989 V(Int64ListFactory, kInt64ArrayCid, 284215425) \ |
1990 V(Uint64ListFactory, kUint64ArrayCid, 1471017221) \ | 1990 V(Uint64ListFactory, kUint64ArrayCid, 870102373) \ |
1991 V(Float64ListFactory, kFloat64ArrayCid, 1037441059) \ | 1991 V(Float64ListFactory, kFloat64ArrayCid, 436526211) \ |
1992 V(Float32ListFactory, kFloat32ArrayCid, 2035252095) \ | 1992 V(Float32ListFactory, kFloat32ArrayCid, 1434337247) \ |
1993 | 1993 |
1994 | 1994 |
1995 // Class that recognizes factories and returns corresponding result cid. | 1995 // Class that recognizes factories and returns corresponding result cid. |
1996 class FactoryRecognizer : public AllStatic { | 1996 class FactoryRecognizer : public AllStatic { |
1997 public: | 1997 public: |
1998 // Return kDynamicCid if factory is not recognized. | 1998 // Return kDynamicCid if factory is not recognized. |
1999 static intptr_t ResultCid(const Function& factory) { | 1999 static intptr_t ResultCid(const Function& factory) { |
2000 ASSERT(factory.IsFactory()); | 2000 ASSERT(factory.IsFactory()); |
2001 const Class& function_class = Class::Handle(factory.Owner()); | 2001 const Class& function_class = Class::Handle(factory.Owner()); |
2002 const Library& lib = Library::Handle(function_class.library()); | 2002 const Library& lib = Library::Handle(function_class.library()); |
(...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3306 intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name, reason) + 1; | 3306 intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name, reason) + 1; |
3307 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 3307 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
3308 OS::SNPrint(chars, len, kFormat, function_name, reason); | 3308 OS::SNPrint(chars, len, kFormat, function_name, reason); |
3309 const Error& error = Error::Handle( | 3309 const Error& error = Error::Handle( |
3310 LanguageError::New(String::Handle(String::New(chars)))); | 3310 LanguageError::New(String::Handle(String::New(chars)))); |
3311 Isolate::Current()->long_jump_base()->Jump(1, error); | 3311 Isolate::Current()->long_jump_base()->Jump(1, error); |
3312 } | 3312 } |
3313 | 3313 |
3314 | 3314 |
3315 } // namespace dart | 3315 } // namespace dart |
OLD | NEW |