| Index: runtime/vm/precompiler.h
|
| diff --git a/runtime/vm/precompiler.h b/runtime/vm/precompiler.h
|
| index 32dff56c016e0e9eb2f5ca03e6e503985e773a78..4a5d84475570681988000f10de56453d51b72170 100644
|
| --- a/runtime/vm/precompiler.h
|
| +++ b/runtime/vm/precompiler.h
|
| @@ -64,6 +64,28 @@ class StackmapKeyValueTrait {
|
|
|
| typedef DirectChainedHashMap<StackmapKeyValueTrait> StackmapSet;
|
|
|
| +class FunctionKeyValueTrait {
|
| + public:
|
| + // Typedefs needed for the DirectChainedHashMap template.
|
| + typedef const Function* Key;
|
| + typedef const Function* Value;
|
| + typedef const Function* Pair;
|
| +
|
| + static Key KeyOf(Pair kv) { return kv; }
|
| +
|
| + static Value ValueOf(Pair kv) { return kv; }
|
| +
|
| + static inline intptr_t Hashcode(Key key) {
|
| + return key->token_pos();
|
| + }
|
| +
|
| + static inline bool IsKeyEqual(Pair pair, Key key) {
|
| + return pair->raw() == key->raw();
|
| + }
|
| +};
|
| +
|
| +typedef DirectChainedHashMap<FunctionKeyValueTrait> FunctionSet;
|
| +
|
|
|
| class Precompiler : public ValueObject {
|
| public:
|
| @@ -79,9 +101,9 @@ class Precompiler : public ValueObject {
|
| void AddRoots(Dart_QualifiedFunctionName embedder_entry_points[]);
|
| void AddEntryPoints(Dart_QualifiedFunctionName entry_points[]);
|
| void Iterate();
|
| - void CleanUp();
|
|
|
| void AddCalleesOf(const Function& function);
|
| + void AddConstObject(const Instance& instance);
|
| void AddClosureCall(const ICData& call_site);
|
| void AddField(const Field& field);
|
| void AddFunction(const Function& function);
|
| @@ -124,8 +146,8 @@ class Precompiler : public ValueObject {
|
|
|
| const GrowableObjectArray& libraries_;
|
| const GrowableObjectArray& pending_functions_;
|
| - const GrowableObjectArray& collected_closures_;
|
| SymbolSet sent_selectors_;
|
| + FunctionSet enqueued_functions_;
|
| Error& error_;
|
| };
|
|
|
|
|