| OLD | NEW | 
|---|
| 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 "vm/class_finalizer.h" | 10 #include "vm/class_finalizer.h" | 
| (...skipping 4238 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4249       const String& getter_name = | 4249       const String& getter_name = | 
| 4250           String::Handle(Z, Field::GetterName(field_name)); | 4250           String::Handle(Z, Field::GetterName(field_name)); | 
| 4251       getter = cls.LookupStaticFunctionAllowPrivate(getter_name); | 4251       getter = cls.LookupStaticFunctionAllowPrivate(getter_name); | 
| 4252     } | 4252     } | 
| 4253 | 4253 | 
| 4254     if (!getter.IsNull()) { | 4254     if (!getter.IsNull()) { | 
| 4255       // Invoke the getter and return the result. | 4255       // Invoke the getter and return the result. | 
| 4256       return Api::NewHandle(I, | 4256       return Api::NewHandle(I, | 
| 4257           DartEntry::InvokeFunction(getter, Object::empty_array())); | 4257           DartEntry::InvokeFunction(getter, Object::empty_array())); | 
| 4258     } else if (!field.IsNull()) { | 4258     } else if (!field.IsNull()) { | 
| 4259       return Api::NewHandle(I, field.value()); | 4259       return Api::NewHandle(I, field.StaticValue()); | 
| 4260     } else { | 4260     } else { | 
| 4261       return Api::NewError("%s: did not find static field '%s'.", | 4261       return Api::NewError("%s: did not find static field '%s'.", | 
| 4262                            CURRENT_FUNC, field_name.ToCString()); | 4262                            CURRENT_FUNC, field_name.ToCString()); | 
| 4263     } | 4263     } | 
| 4264 | 4264 | 
| 4265   } else if (obj.IsInstance()) { | 4265   } else if (obj.IsInstance()) { | 
| 4266     // Every instance field has a getter Function.  Try to find the | 4266     // Every instance field has a getter Function.  Try to find the | 
| 4267     // getter in any superclass and use that function to access the | 4267     // getter in any superclass and use that function to access the | 
| 4268     // field. | 4268     // field. | 
| 4269     const Instance& instance = Instance::Cast(obj); | 4269     const Instance& instance = Instance::Cast(obj); | 
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4316           Field::GetterName(field_name)); | 4316           Field::GetterName(field_name)); | 
| 4317       getter = cls.LookupStaticFunctionAllowPrivate(getter_name); | 4317       getter = cls.LookupStaticFunctionAllowPrivate(getter_name); | 
| 4318     } | 4318     } | 
| 4319 | 4319 | 
| 4320     if (!getter.IsNull()) { | 4320     if (!getter.IsNull()) { | 
| 4321       // Invoke the getter and return the result. | 4321       // Invoke the getter and return the result. | 
| 4322       return Api::NewHandle(I, | 4322       return Api::NewHandle(I, | 
| 4323           DartEntry::InvokeFunction(getter, Object::empty_array())); | 4323           DartEntry::InvokeFunction(getter, Object::empty_array())); | 
| 4324     } | 4324     } | 
| 4325     if (!field.IsNull()) { | 4325     if (!field.IsNull()) { | 
| 4326       return Api::NewHandle(I, field.value()); | 4326       return Api::NewHandle(I, field.StaticValue()); | 
| 4327     } | 4327     } | 
| 4328     return Api::NewError("%s: did not find top-level variable '%s'.", | 4328     return Api::NewError("%s: did not find top-level variable '%s'.", | 
| 4329                          CURRENT_FUNC, field_name.ToCString()); | 4329                          CURRENT_FUNC, field_name.ToCString()); | 
| 4330 | 4330 | 
| 4331   } else if (obj.IsError()) { | 4331   } else if (obj.IsError()) { | 
| 4332       return container; | 4332       return container; | 
| 4333   } else { | 4333   } else { | 
| 4334     return Api::NewError( | 4334     return Api::NewError( | 
| 4335         "%s expects argument 'container' to be an object, type, or library.", | 4335         "%s expects argument 'container' to be an object, type, or library.", | 
| 4336         CURRENT_FUNC); | 4336         CURRENT_FUNC); | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4390       if (result.IsError()) { | 4390       if (result.IsError()) { | 
| 4391         return Api::NewHandle(I, result.raw()); | 4391         return Api::NewHandle(I, result.raw()); | 
| 4392       } else { | 4392       } else { | 
| 4393         return Api::Success(); | 4393         return Api::Success(); | 
| 4394       } | 4394       } | 
| 4395     } else if (!field.IsNull()) { | 4395     } else if (!field.IsNull()) { | 
| 4396       if (field.is_final()) { | 4396       if (field.is_final()) { | 
| 4397         return Api::NewError("%s: cannot set final field '%s'.", | 4397         return Api::NewError("%s: cannot set final field '%s'.", | 
| 4398                              CURRENT_FUNC, field_name.ToCString()); | 4398                              CURRENT_FUNC, field_name.ToCString()); | 
| 4399       } else { | 4399       } else { | 
| 4400         field.set_value(value_instance); | 4400         field.SetStaticValue(value_instance); | 
| 4401         return Api::Success(); | 4401         return Api::Success(); | 
| 4402       } | 4402       } | 
| 4403     } else { | 4403     } else { | 
| 4404       return Api::NewError("%s: did not find static field '%s'.", | 4404       return Api::NewError("%s: did not find static field '%s'.", | 
| 4405                            CURRENT_FUNC, field_name.ToCString()); | 4405                            CURRENT_FUNC, field_name.ToCString()); | 
| 4406     } | 4406     } | 
| 4407 | 4407 | 
| 4408   } else if (obj.IsInstance()) { | 4408   } else if (obj.IsInstance()) { | 
| 4409     // Every instance field has a setter Function.  Try to find the | 4409     // Every instance field has a setter Function.  Try to find the | 
| 4410     // setter in any superclass and use that function to access the | 4410     // setter in any superclass and use that function to access the | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4468       if (result.IsError()) { | 4468       if (result.IsError()) { | 
| 4469         return Api::NewHandle(I, result.raw()); | 4469         return Api::NewHandle(I, result.raw()); | 
| 4470       } | 4470       } | 
| 4471       return Api::Success(); | 4471       return Api::Success(); | 
| 4472     } | 4472     } | 
| 4473     if (!field.IsNull()) { | 4473     if (!field.IsNull()) { | 
| 4474       if (field.is_final()) { | 4474       if (field.is_final()) { | 
| 4475         return Api::NewError("%s: cannot set final top-level variable '%s'.", | 4475         return Api::NewError("%s: cannot set final top-level variable '%s'.", | 
| 4476                              CURRENT_FUNC, field_name.ToCString()); | 4476                              CURRENT_FUNC, field_name.ToCString()); | 
| 4477       } | 4477       } | 
| 4478       field.set_value(value_instance); | 4478       field.SetStaticValue(value_instance); | 
| 4479       return Api::Success(); | 4479       return Api::Success(); | 
| 4480     } | 4480     } | 
| 4481     return Api::NewError("%s: did not find top-level variable '%s'.", | 4481     return Api::NewError("%s: did not find top-level variable '%s'.", | 
| 4482                          CURRENT_FUNC, field_name.ToCString()); | 4482                          CURRENT_FUNC, field_name.ToCString()); | 
| 4483 | 4483 | 
| 4484   } else if (obj.IsError()) { | 4484   } else if (obj.IsError()) { | 
| 4485     return container; | 4485     return container; | 
| 4486   } | 4486   } | 
| 4487   return Api::NewError( | 4487   return Api::NewError( | 
| 4488       "%s expects argument 'container' to be an object, type, or library.", | 4488       "%s expects argument 'container' to be an object, type, or library.", | 
| (...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5496   // the new code, the debugger convert them to unresolved source breakpoints. | 5496   // the new code, the debugger convert them to unresolved source breakpoints. | 
| 5497   // The code that completes the futures (invoked below) may call into the | 5497   // The code that completes the futures (invoked below) may call into the | 
| 5498   // newly loaded code and trigger one of these breakpoints. | 5498   // newly loaded code and trigger one of these breakpoints. | 
| 5499   I->debugger()->NotifyDoneLoading(); | 5499   I->debugger()->NotifyDoneLoading(); | 
| 5500 | 5500 | 
| 5501   // Notify mirrors that MirrorSystem.libraries needs to be recomputed. | 5501   // Notify mirrors that MirrorSystem.libraries needs to be recomputed. | 
| 5502   const Library& libmirrors = Library::Handle(Z, Library::MirrorsLibrary()); | 5502   const Library& libmirrors = Library::Handle(Z, Library::MirrorsLibrary()); | 
| 5503   const Field& dirty_bit = Field::Handle(Z, | 5503   const Field& dirty_bit = Field::Handle(Z, | 
| 5504       libmirrors.LookupLocalField(String::Handle(String::New("dirty")))); | 5504       libmirrors.LookupLocalField(String::Handle(String::New("dirty")))); | 
| 5505   ASSERT(!dirty_bit.IsNull() && dirty_bit.is_static()); | 5505   ASSERT(!dirty_bit.IsNull() && dirty_bit.is_static()); | 
| 5506   dirty_bit.set_value(Bool::True()); | 5506   dirty_bit.SetStaticValue(Bool::True()); | 
| 5507 | 5507 | 
| 5508   if (complete_futures) { | 5508   if (complete_futures) { | 
| 5509     const Library& corelib = Library::Handle(Z, Library::CoreLibrary()); | 5509     const Library& corelib = Library::Handle(Z, Library::CoreLibrary()); | 
| 5510     const String& function_name = | 5510     const String& function_name = | 
| 5511         String::Handle(Z, String::New("_completeDeferredLoads")); | 5511         String::Handle(Z, String::New("_completeDeferredLoads")); | 
| 5512     const Function& function = Function::Handle(Z, | 5512     const Function& function = Function::Handle(Z, | 
| 5513         corelib.LookupFunctionAllowPrivate(function_name)); | 5513         corelib.LookupFunctionAllowPrivate(function_name)); | 
| 5514     ASSERT(!function.IsNull()); | 5514     ASSERT(!function.IsNull()); | 
| 5515     const Array& args = Array::empty_array(); | 5515     const Array& args = Array::empty_array(); | 
| 5516 | 5516 | 
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5933                                    ApiReallocate); | 5933                                    ApiReallocate); | 
| 5934   writer.WriteFullSnapshot(); | 5934   writer.WriteFullSnapshot(); | 
| 5935   *vm_isolate_snapshot_size = writer.VmIsolateSnapshotSize(); | 5935   *vm_isolate_snapshot_size = writer.VmIsolateSnapshotSize(); | 
| 5936   *isolate_snapshot_size = writer.IsolateSnapshotSize(); | 5936   *isolate_snapshot_size = writer.IsolateSnapshotSize(); | 
| 5937   *instructions_snapshot_size = writer.InstructionsSnapshotSize(); | 5937   *instructions_snapshot_size = writer.InstructionsSnapshotSize(); | 
| 5938 | 5938 | 
| 5939   return Api::Success(); | 5939   return Api::Success(); | 
| 5940 } | 5940 } | 
| 5941 | 5941 | 
| 5942 }  // namespace dart | 5942 }  // namespace dart | 
| OLD | NEW | 
|---|