Index: src/compiler/pipeline.cc |
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
index 74847a69a88af1e3dc022dc37a36d2c27f7596ac..575300ef78b22512b7caf0c020ab241056d2ede4 100644 |
--- a/src/compiler/pipeline.cc |
+++ b/src/compiler/pipeline.cc |
@@ -104,7 +104,8 @@ class PipelineData { |
register_allocation_data_(nullptr) { |
PhaseScope scope(pipeline_statistics, "init pipeline data"); |
graph_ = new (graph_zone_) Graph(graph_zone_); |
- source_positions_.Reset(new SourcePositionTable(graph_)); |
+ source_positions_ = new (graph_zone_->New(sizeof(SourcePositionTable))) |
+ SourcePositionTable(graph_); |
simplified_ = new (graph_zone_) SimplifiedOperatorBuilder(graph_zone_); |
machine_ = new (graph_zone_) MachineOperatorBuilder( |
graph_zone_, MachineType::PointerRepresentation(), |
@@ -128,7 +129,8 @@ class PipelineData { |
graph_zone_scope_(zone_pool_), |
graph_zone_(nullptr), |
graph_(graph), |
- source_positions_(new SourcePositionTable(graph_)), |
+ source_positions_(new (info->zone()->New(sizeof(SourcePositionTable))) |
+ SourcePositionTable(graph_)), |
loop_assignment_(nullptr), |
simplified_(nullptr), |
machine_(nullptr), |
@@ -195,9 +197,7 @@ class PipelineData { |
Zone* graph_zone() const { return graph_zone_; } |
Graph* graph() const { return graph_; } |
- SourcePositionTable* source_positions() const { |
- return source_positions_.get(); |
- } |
+ SourcePositionTable* source_positions() const { return source_positions_; } |
MachineOperatorBuilder* machine() const { return machine_; } |
CommonOperatorBuilder* common() const { return common_; } |
JSOperatorBuilder* javascript() const { return javascript_; } |
@@ -238,13 +238,11 @@ class PipelineData { |
} |
void DeleteGraphZone() { |
- // Destroy objects with destructors first. |
- source_positions_.Reset(nullptr); |
if (graph_zone_ == nullptr) return; |
- // Destroy zone and clear pointers. |
graph_zone_scope_.Destroy(); |
graph_zone_ = nullptr; |
graph_ = nullptr; |
+ source_positions_ = nullptr; |
loop_assignment_ = nullptr; |
type_hint_analysis_ = nullptr; |
simplified_ = nullptr; |
@@ -317,8 +315,7 @@ class PipelineData { |
ZonePool::Scope graph_zone_scope_; |
Zone* graph_zone_; |
Graph* graph_; |
- // TODO(dcarney): make this into a ZoneObject. |
- base::SmartPointer<SourcePositionTable> source_positions_; |
+ SourcePositionTable* source_positions_; |
LoopAssignmentAnalysis* loop_assignment_; |
TypeHintAnalysis* type_hint_analysis_ = nullptr; |
SimplifiedOperatorBuilder* simplified_; |