Commit 3d765029 authored by vitalyr@chromium.org's avatar vitalyr@chromium.org

Fix uninitialized memory read in CallOptimization.

BUG=http://crbug.com/36602

Review URL: http://codereview.chromium.org/657081

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent be1ea81c
...@@ -479,17 +479,14 @@ class LoadInterceptorCompiler BASE_EMBEDDED { ...@@ -479,17 +479,14 @@ class LoadInterceptorCompiler BASE_EMBEDDED {
// Holds information about possible function call optimizations. // Holds information about possible function call optimizations.
class CallOptimization BASE_EMBEDDED { class CallOptimization BASE_EMBEDDED {
public: public:
explicit CallOptimization(LookupResult* lookup) explicit CallOptimization(LookupResult* lookup) {
: constant_function_(NULL), if (!lookup->IsProperty() || !lookup->IsCacheable() ||
is_simple_api_call_(false), lookup->type() != CONSTANT_FUNCTION) {
expected_receiver_type_(NULL), Initialize(NULL);
api_call_info_(NULL) { } else {
if (!lookup->IsProperty() || !lookup->IsCacheable()) return; // We only optimize constant function calls.
Initialize(lookup->GetConstantFunction());
// We only optimize constant function calls. }
if (lookup->type() != CONSTANT_FUNCTION) return;
Initialize(lookup->GetConstantFunction());
} }
explicit CallOptimization(JSFunction* function) { explicit CallOptimization(JSFunction* function) {
...@@ -537,11 +534,14 @@ class CallOptimization BASE_EMBEDDED { ...@@ -537,11 +534,14 @@ class CallOptimization BASE_EMBEDDED {
private: private:
void Initialize(JSFunction* function) { void Initialize(JSFunction* function) {
if (!function->is_compiled()) return; constant_function_ = NULL;
constant_function_ = function;
is_simple_api_call_ = false; is_simple_api_call_ = false;
expected_receiver_type_ = NULL;
api_call_info_ = NULL;
if (function == NULL || !function->is_compiled()) return;
constant_function_ = function;
AnalyzePossibleApiFunction(function); AnalyzePossibleApiFunction(function);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment