| OLD | NEW |
| 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 #include "vm/dart_entry.h" | 5 #include "vm/dart_entry.h" |
| 6 | 6 |
| 7 #include "vm/code_generator.h" | 7 #include "vm/code_generator.h" |
| 8 #include "vm/compiler.h" | 8 #include "vm/compiler.h" |
| 9 #include "vm/object_store.h" | 9 #include "vm/object_store.h" |
| 10 #include "vm/resolver.h" | 10 #include "vm/resolver.h" |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 } | 233 } |
| 234 // Insert pair in descriptor array. | 234 // Insert pair in descriptor array. |
| 235 descriptor.SetAt(insert_index + kNameOffset, name); | 235 descriptor.SetAt(insert_index + kNameOffset, name); |
| 236 descriptor.SetAt(insert_index + kPositionOffset, pos); | 236 descriptor.SetAt(insert_index + kPositionOffset, pos); |
| 237 } | 237 } |
| 238 // Set terminating null. | 238 // Set terminating null. |
| 239 descriptor.SetAt(descriptor_len - 1, Object::Handle()); | 239 descriptor.SetAt(descriptor_len - 1, Object::Handle()); |
| 240 | 240 |
| 241 // Share the immutable descriptor when possible by canonicalizing it. | 241 // Share the immutable descriptor when possible by canonicalizing it. |
| 242 descriptor.MakeImmutable(); | 242 descriptor.MakeImmutable(); |
| 243 descriptor ^= descriptor.Canonicalize(); | 243 descriptor ^= descriptor.CheckAndCanonicalize(NULL); |
| 244 ASSERT(!descriptor.IsNull()); |
| 244 return descriptor.raw(); | 245 return descriptor.raw(); |
| 245 } | 246 } |
| 246 | 247 |
| 247 | 248 |
| 248 RawArray* ArgumentsDescriptor::New(intptr_t num_arguments) { | 249 RawArray* ArgumentsDescriptor::New(intptr_t num_arguments) { |
| 249 ASSERT(num_arguments >= 0); | 250 ASSERT(num_arguments >= 0); |
| 250 if (num_arguments < kCachedDescriptorCount) { | 251 if (num_arguments < kCachedDescriptorCount) { |
| 251 return cached_args_descriptors_[num_arguments]; | 252 return cached_args_descriptors_[num_arguments]; |
| 252 } | 253 } |
| 253 return NewNonCached(num_arguments); | 254 return NewNonCached(num_arguments); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 268 | 269 |
| 269 // Set number of positional arguments. | 270 // Set number of positional arguments. |
| 270 descriptor.SetAt(kPositionalCountIndex, arg_count); | 271 descriptor.SetAt(kPositionalCountIndex, arg_count); |
| 271 | 272 |
| 272 // Set terminating null. | 273 // Set terminating null. |
| 273 descriptor.SetAt((descriptor_len - 1), Object::Handle()); | 274 descriptor.SetAt((descriptor_len - 1), Object::Handle()); |
| 274 | 275 |
| 275 // Share the immutable descriptor when possible by canonicalizing it. | 276 // Share the immutable descriptor when possible by canonicalizing it. |
| 276 descriptor.MakeImmutable(); | 277 descriptor.MakeImmutable(); |
| 277 if (canonicalize) { | 278 if (canonicalize) { |
| 278 descriptor ^= descriptor.Canonicalize(); | 279 descriptor ^= descriptor.CheckAndCanonicalize(NULL); |
| 279 } | 280 } |
| 281 ASSERT(!descriptor.IsNull()); |
| 280 return descriptor.raw(); | 282 return descriptor.raw(); |
| 281 } | 283 } |
| 282 | 284 |
| 283 | 285 |
| 284 void ArgumentsDescriptor::InitOnce() { | 286 void ArgumentsDescriptor::InitOnce() { |
| 285 for (int i = 0; i < kCachedDescriptorCount; i++) { | 287 for (int i = 0; i < kCachedDescriptorCount; i++) { |
| 286 cached_args_descriptors_[i] = ArgumentsDescriptor::NewNonCached(i, false); | 288 cached_args_descriptors_[i] = ArgumentsDescriptor::NewNonCached(i, false); |
| 287 } | 289 } |
| 288 } | 290 } |
| 289 | 291 |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 String::Handle(Field::GetterName(Symbols::_id())))); | 477 String::Handle(Field::GetterName(Symbols::_id())))); |
| 476 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name)); | 478 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name)); |
| 477 ASSERT(!func.IsNull()); | 479 ASSERT(!func.IsNull()); |
| 478 const Array& args = Array::Handle(Array::New(1)); | 480 const Array& args = Array::Handle(Array::New(1)); |
| 479 args.SetAt(0, port); | 481 args.SetAt(0, port); |
| 480 return DartEntry::InvokeFunction(func, args); | 482 return DartEntry::InvokeFunction(func, args); |
| 481 } | 483 } |
| 482 | 484 |
| 483 | 485 |
| 484 } // namespace dart | 486 } // namespace dart |
| OLD | NEW |