Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Unified Diff: src/code-stubs-hydrogen.cc

Issue 796363002: Fixed an ordering issue found by UBSan_vptr. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/code-stubs-hydrogen.cc
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
index fca1e293f8c315f872a0a79143fa70838695d540..8098077dd6ac474f44df0474a9f58896854bf354 100644
--- a/src/code-stubs-hydrogen.cc
+++ b/src/code-stubs-hydrogen.cc
@@ -34,11 +34,11 @@ static LChunk* OptimizeGraph(HGraph* graph) {
class CodeStubGraphBuilderBase : public HGraphBuilder {
public:
- CodeStubGraphBuilderBase(Isolate* isolate, HydrogenCodeStub* stub)
- : HGraphBuilder(&info_),
+ explicit CodeStubGraphBuilderBase(CompilationInfoWithZone* info)
+ : HGraphBuilder(info),
arguments_length_(NULL),
- info_(stub, isolate),
- descriptor_(stub),
+ info_(info),
+ descriptor_(info->code_stub()),
context_(NULL) {
int parameter_count = descriptor_.GetEnvironmentParameterCount();
parameters_.Reset(new HParameter*[parameter_count]);
@@ -56,10 +56,10 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
DCHECK(arguments_length_ != NULL);
return arguments_length_;
}
- CompilationInfo* info() { return &info_; }
- HydrogenCodeStub* stub() { return info_.code_stub(); }
+ CompilationInfo* info() { return info_; }
+ HydrogenCodeStub* stub() { return info_->code_stub(); }
HContext* context() { return context_; }
- Isolate* isolate() { return info_.isolate(); }
+ Isolate* isolate() { return info_->isolate(); }
HLoadNamedField* BuildLoadNamedField(HValue* object,
FieldIndex index);
@@ -106,7 +106,7 @@ class CodeStubGraphBuilderBase : public HGraphBuilder {
SmartArrayPointer<HParameter*> parameters_;
HValue* arguments_length_;
- CompilationInfoWithZone info_;
+ CompilationInfoWithZone* info_;
CodeStubDescriptor descriptor_;
HContext* context_;
};
@@ -120,7 +120,7 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
const char* name = CodeStub::MajorName(stub()->MajorKey(), false);
PrintF("-----------------------------------------------------------\n");
PrintF("Compiling stub %s using hydrogen\n", name);
- isolate()->GetHTracer()->TraceCompilation(&info_);
+ isolate()->GetHTracer()->TraceCompilation(info());
}
int param_count = descriptor_.GetEnvironmentParameterCount();
@@ -189,8 +189,8 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
template <class Stub>
class CodeStubGraphBuilder: public CodeStubGraphBuilderBase {
public:
- CodeStubGraphBuilder(Isolate* isolate, Stub* stub)
- : CodeStubGraphBuilderBase(isolate, stub) {}
+ explicit CodeStubGraphBuilder(CompilationInfoWithZone* info)
+ : CodeStubGraphBuilderBase(info) {}
protected:
virtual HValue* BuildCodeStub() {
@@ -271,7 +271,8 @@ static Handle<Code> DoGenerateCode(Stub* stub) {
if (FLAG_profile_hydrogen_code_stub_compilation) {
timer.Start();
}
- CodeStubGraphBuilder<Stub> builder(isolate, stub);
+ CompilationInfoWithZone info(stub, isolate);
+ CodeStubGraphBuilder<Stub> builder(&info);
LChunk* chunk = OptimizeGraph(builder.CreateGraph());
Handle<Code> code = chunk->Codegen();
if (FLAG_profile_hydrogen_code_stub_compilation) {
@@ -1700,8 +1701,8 @@ template <>
class CodeStubGraphBuilder<KeyedLoadGenericStub>
: public CodeStubGraphBuilderBase {
public:
- CodeStubGraphBuilder(Isolate* isolate, KeyedLoadGenericStub* stub)
- : CodeStubGraphBuilderBase(isolate, stub) {}
+ explicit CodeStubGraphBuilder(CompilationInfoWithZone* info)
+ : CodeStubGraphBuilderBase(info) {}
protected:
virtual HValue* BuildCodeStub();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698