| Index: src/compilation-cache.h
|
| diff --git a/src/compilation-cache.h b/src/compilation-cache.h
|
| index 770d878b5b3428049cdb676a9cfb5be0e537e273..887d4e84e98b9c8d8ccedc5167310a3b373b8a97 100644
|
| --- a/src/compilation-cache.h
|
| +++ b/src/compilation-cache.h
|
| @@ -40,7 +40,9 @@ class HashMap;
|
| // for different compilation modes, to avoid retrieving the wrong result.
|
| class CompilationSubCache {
|
| public:
|
| - explicit CompilationSubCache(int generations): generations_(generations) {
|
| + CompilationSubCache(Isolate* isolate, int generations)
|
| + : isolate_(isolate),
|
| + generations_(generations) {
|
| tables_ = NewArray<Object*>(generations);
|
| }
|
|
|
| @@ -78,7 +80,11 @@ class CompilationSubCache {
|
| // Number of generations in this sub-cache.
|
| inline int generations() { return generations_; }
|
|
|
| + protected:
|
| + Isolate* isolate() { return isolate_; }
|
| +
|
| private:
|
| + Isolate* isolate_;
|
| int generations_; // Number of generations.
|
| Object** tables_; // Compilation cache tables - one for each generation.
|
|
|
| @@ -89,7 +95,7 @@ class CompilationSubCache {
|
| // Sub-cache for scripts.
|
| class CompilationCacheScript : public CompilationSubCache {
|
| public:
|
| - explicit CompilationCacheScript(int generations);
|
| + CompilationCacheScript(Isolate* isolate, int generations);
|
|
|
| Handle<SharedFunctionInfo> Lookup(Handle<String> source,
|
| Handle<Object> name,
|
| @@ -120,8 +126,8 @@ class CompilationCacheScript : public CompilationSubCache {
|
| // Sub-cache for eval scripts.
|
| class CompilationCacheEval: public CompilationSubCache {
|
| public:
|
| - explicit CompilationCacheEval(int generations)
|
| - : CompilationSubCache(generations) { }
|
| + CompilationCacheEval(Isolate* isolate, int generations)
|
| + : CompilationSubCache(isolate, generations) { }
|
|
|
| Handle<SharedFunctionInfo> Lookup(Handle<String> source,
|
| Handle<Context> context,
|
| @@ -150,8 +156,8 @@ class CompilationCacheEval: public CompilationSubCache {
|
| // Sub-cache for regular expressions.
|
| class CompilationCacheRegExp: public CompilationSubCache {
|
| public:
|
| - explicit CompilationCacheRegExp(int generations)
|
| - : CompilationSubCache(generations) { }
|
| + CompilationCacheRegExp(Isolate* isolate, int generations)
|
| + : CompilationSubCache(isolate, generations) { }
|
|
|
| Handle<FixedArray> Lookup(Handle<String> source, JSRegExp::Flags flags);
|
|
|
| @@ -245,7 +251,7 @@ class CompilationCache {
|
| void Enable();
|
| void Disable();
|
| private:
|
| - CompilationCache();
|
| + explicit CompilationCache(Isolate* isolate);
|
| ~CompilationCache();
|
|
|
| HashMap* EagerOptimizingSet();
|
| @@ -253,6 +259,12 @@ class CompilationCache {
|
| // The number of sub caches covering the different types to cache.
|
| static const int kSubCacheCount = 4;
|
|
|
| + bool IsEnabled() { return FLAG_compilation_cache && enabled_; }
|
| +
|
| + Isolate* isolate() { return isolate_; }
|
| +
|
| + Isolate* isolate_;
|
| +
|
| CompilationCacheScript script_;
|
| CompilationCacheEval eval_global_;
|
| CompilationCacheEval eval_contextual_;
|
| @@ -264,8 +276,6 @@ class CompilationCache {
|
|
|
| HashMap* eager_optimizing_set_;
|
|
|
| - bool IsEnabled() { return FLAG_compilation_cache && enabled_; }
|
| -
|
| friend class Isolate;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(CompilationCache);
|
|
|