Index: runtime/lib/mirrors.cc |
diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc |
index 01d97cdc116ffbb0f5fcad9b1fa995844d1e72de..7a1194b6826969e8ae8fbdec4d8a0f12c86125c2 100644 |
--- a/runtime/lib/mirrors.cc |
+++ b/runtime/lib/mirrors.cc |
@@ -1300,26 +1300,26 @@ DEFINE_NATIVE_ENTRY(InstanceMirror_invoke, 5) { |
GET_NON_NULL_NATIVE_ARGUMENT(Array, arg_names, arguments->NativeArgAt(4)); |
Class& klass = Class::Handle(reflectee.clazz()); |
- Function& function = Function::Handle( |
- Resolver::ResolveDynamicAnyArgs(klass, function_name)); |
+ Function& function = Function::Handle(zone, |
+ Resolver::ResolveDynamicAnyArgs(zone, klass, function_name)); |
const Array& args_descriptor = |
- Array::Handle(ArgumentsDescriptor::New(args.Length(), arg_names)); |
+ Array::Handle(zone, ArgumentsDescriptor::New(args.Length(), arg_names)); |
if (function.IsNull()) { |
// Didn't find a method: try to find a getter and invoke call on its result. |
const String& getter_name = |
- String::Handle(Field::GetterName(function_name)); |
- function = Resolver::ResolveDynamicAnyArgs(klass, getter_name); |
+ String::Handle(zone, Field::GetterName(function_name)); |
+ function = Resolver::ResolveDynamicAnyArgs(zone, klass, getter_name); |
if (!function.IsNull()) { |
ASSERT(function.kind() != RawFunction::kMethodExtractor); |
// Invoke the getter. |
const int kNumArgs = 1; |
- const Array& getter_args = Array::Handle(Array::New(kNumArgs)); |
+ const Array& getter_args = Array::Handle(zone, Array::New(kNumArgs)); |
getter_args.SetAt(0, reflectee); |
const Array& getter_args_descriptor = |
- Array::Handle(ArgumentsDescriptor::New(getter_args.Length())); |
- const Instance& getter_result = Instance::Handle( |
+ Array::Handle(zone, ArgumentsDescriptor::New(getter_args.Length())); |
+ const Instance& getter_result = Instance::Handle(zone, |
InvokeDynamicFunction(reflectee, |
function, |
getter_name, |
@@ -1329,7 +1329,7 @@ DEFINE_NATIVE_ENTRY(InstanceMirror_invoke, 5) { |
args.SetAt(0, getter_result); |
// Call the closure. |
const Object& call_result = |
- Object::Handle(DartEntry::InvokeClosure(args, args_descriptor)); |
+ Object::Handle(zone, DartEntry::InvokeClosure(args, args_descriptor)); |
if (call_result.IsError()) { |
Exceptions::PropagateError(Error::Cast(call_result)); |
UNREACHABLE(); |
@@ -1357,24 +1357,24 @@ DEFINE_NATIVE_ENTRY(InstanceMirror_invokeGetter, 3) { |
const String& internal_getter_name = String::Handle( |
Field::GetterName(getter_name)); |
- Function& function = Function::Handle( |
- Resolver::ResolveDynamicAnyArgs(klass, internal_getter_name)); |
+ Function& function = Function::Handle(zone, |
+ Resolver::ResolveDynamicAnyArgs(zone, klass, internal_getter_name)); |
// Check for method extraction when method extractors are not created. |
if (function.IsNull() && !FLAG_lazy_dispatchers) { |
- function = Resolver::ResolveDynamicAnyArgs(klass, getter_name); |
+ function = Resolver::ResolveDynamicAnyArgs(zone, klass, getter_name); |
if (!function.IsNull()) { |
const Function& closure_function = |
- Function::Handle(function.ImplicitClosureFunction()); |
+ Function::Handle(zone, function.ImplicitClosureFunction()); |
return closure_function.ImplicitInstanceClosure(reflectee); |
} |
} |
const int kNumArgs = 1; |
- const Array& args = Array::Handle(Array::New(kNumArgs)); |
+ const Array& args = Array::Handle(zone, Array::New(kNumArgs)); |
args.SetAt(0, reflectee); |
const Array& args_descriptor = |
- Array::Handle(ArgumentsDescriptor::New(args.Length())); |
+ Array::Handle(zone, ArgumentsDescriptor::New(args.Length())); |
// InvokeDynamic invokes NoSuchMethod if the provided function is null. |
return InvokeDynamicFunction(reflectee, |
@@ -1393,18 +1393,18 @@ DEFINE_NATIVE_ENTRY(InstanceMirror_invokeSetter, 4) { |
GET_NON_NULL_NATIVE_ARGUMENT(String, setter_name, arguments->NativeArgAt(2)); |
GET_NATIVE_ARGUMENT(Instance, value, arguments->NativeArgAt(3)); |
- const Class& klass = Class::Handle(reflectee.clazz()); |
+ const Class& klass = Class::Handle(zone, reflectee.clazz()); |
const String& internal_setter_name = |
- String::Handle(Field::SetterName(setter_name)); |
- const Function& setter = Function::Handle( |
- Resolver::ResolveDynamicAnyArgs(klass, internal_setter_name)); |
+ String::Handle(zone, Field::SetterName(setter_name)); |
+ const Function& setter = Function::Handle(zone, |
+ Resolver::ResolveDynamicAnyArgs(zone, klass, internal_setter_name)); |
const int kNumArgs = 2; |
- const Array& args = Array::Handle(Array::New(kNumArgs)); |
+ const Array& args = Array::Handle(zone, Array::New(kNumArgs)); |
args.SetAt(0, reflectee); |
args.SetAt(1, value); |
const Array& args_descriptor = |
- Array::Handle(ArgumentsDescriptor::New(args.Length())); |
+ Array::Handle(zone, ArgumentsDescriptor::New(args.Length())); |
return InvokeDynamicFunction(reflectee, |
setter, |