| Index: runtime/vm/code_generator_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/code_generator_ia32.cc (revision 4401)
|
| +++ runtime/vm/code_generator_ia32.cc (working copy)
|
| @@ -12,7 +12,6 @@
|
| #include "vm/class_finalizer.h"
|
| #include "vm/dart_entry.h"
|
| #include "vm/debugger.h"
|
| -#include "vm/ic_data.h"
|
| #include "vm/longjump.h"
|
| #include "vm/object.h"
|
| #include "vm/object_store.h"
|
| @@ -449,9 +448,12 @@
|
| // Set up the function name and number of arguments (including the receiver)
|
| // to the InstanceCall stub which will resolve the correct entrypoint for
|
| // the operator and call it.
|
| - ICData ic_data(function_name, num_args_checked);
|
| - ASSERT(ic_data.NumberOfArgumentsChecked() == num_args_checked);
|
| - __ LoadObject(ECX, Array::ZoneHandle(ic_data.data()));
|
| + ICData& ic_data = ICData::ZoneHandle();
|
| + ic_data = ICData::New(parsed_function().function(),
|
| + function_name,
|
| + node_id,
|
| + num_args_checked);
|
| + __ LoadObject(ECX, ic_data);
|
| __ LoadObject(EDX, ArgumentsDescriptor(num_arguments,
|
| optional_arguments_names));
|
| uword label_address = 0;
|
| @@ -690,8 +692,13 @@
|
| kClosureArgumentMismatchRuntimeEntry);
|
| } else {
|
| // Invoke noSuchMethod function.
|
| - ICData ic_data(String::Handle(function.name()), 1);
|
| - __ LoadObject(ECX, Array::ZoneHandle(ic_data.data()));
|
| + const int kNumArgsChecked = 1;
|
| + ICData& ic_data = ICData::ZoneHandle();
|
| + ic_data = ICData::New(parsed_function().function(),
|
| + String::Handle(function.name()),
|
| + AstNode::kNoId,
|
| + kNumArgsChecked);
|
| + __ LoadObject(ECX, ic_data);
|
| // EBP : points to previous frame pointer.
|
| // EBP + 4 : points to return address.
|
| // EBP + 8 : address of last argument (arg n-1).
|
|
|