Index: src/codegen.cc |
=================================================================== |
--- src/codegen.cc (revision 5634) |
+++ src/codegen.cc (working copy) |
@@ -361,24 +361,19 @@ |
#undef INLINE_FUNCTION_GENERATOR_ADDRESS |
-CodeGenerator::InlineFunctionGenerator |
- CodeGenerator::FindInlineFunctionGenerator(Runtime::FunctionId id) { |
- return kInlineFunctionGenerators[ |
- static_cast<int>(id) - static_cast<int>(Runtime::kFirstInlineFunction)]; |
-} |
- |
- |
bool CodeGenerator::CheckForInlineRuntimeCall(CallRuntime* node) { |
ZoneList<Expression*>* args = node->arguments(); |
Handle<String> name = node->name(); |
Runtime::Function* function = node->function(); |
if (function != NULL && function->intrinsic_type == Runtime::INLINE) { |
- InlineFunctionGenerator generator = |
- FindInlineFunctionGenerator(function->function_id); |
- if (generator != NULL) { |
- ((*this).*(generator))(args); |
- return true; |
- } |
+ int lookup_index = static_cast<int>(function->function_id) - |
+ static_cast<int>(Runtime::kFirstInlineFunction); |
+ ASSERT(lookup_index >= 0); |
+ ASSERT(static_cast<size_t>(lookup_index) < |
+ ARRAY_SIZE(kInlineFunctionGenerators)); |
+ InlineFunctionGenerator generator = kInlineFunctionGenerators[lookup_index]; |
+ (this->*generator)(args); |
+ return true; |
} |
return false; |
} |