Index: src/hydrogen.cc |
=================================================================== |
--- src/hydrogen.cc (revision 7492) |
+++ src/hydrogen.cc (working copy) |
@@ -3919,11 +3919,16 @@ |
return false; |
} |
- // Don't inline deeper than two calls. |
+ // Don't inline deeper than kMaxInliningLevels calls. |
HEnvironment* env = environment(); |
- if (env->outer() != NULL && env->outer()->outer() != NULL) { |
- TraceInline(target, "inline depth limit reached"); |
- return false; |
+ int current_level = 1; |
+ while (env->outer() != NULL) { |
+ if (current_level == Compiler::kMaxInliningLevels) { |
+ TraceInline(target, "inline depth limit reached"); |
+ return false; |
+ } |
+ current_level++; |
+ env = env->outer(); |
} |
// Don't inline recursive functions. |