Index: cc/surfaces/surface_aggregator.cc |
diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc |
index 066ffc8adb902fb4f194d3c9fae5ae64c64d6a16..0de6f290bce57d70ac94dc26cdd544d15a68375a 100644 |
--- a/cc/surfaces/surface_aggregator.cc |
+++ b/cc/surfaces/surface_aggregator.cc |
@@ -770,23 +770,20 @@ void SurfaceAggregator::PropagateCopyRequestPasses() { |
} |
} |
-std::unique_ptr<CompositorFrame> SurfaceAggregator::Aggregate( |
- SurfaceId surface_id) { |
+CompositorFrame SurfaceAggregator::Aggregate(SurfaceId surface_id) { |
Surface* surface = manager_->GetSurfaceForId(surface_id); |
DCHECK(surface); |
contained_surfaces_[surface_id] = surface->frame_index(); |
const CompositorFrame* root_surface_frame = surface->GetEligibleFrame(); |
- if (!root_surface_frame) |
- return nullptr; |
+ if (!root_surface_frame->delegated_frame_data) |
+ return CompositorFrame(); |
TRACE_EVENT0("cc", "SurfaceAggregator::Aggregate"); |
- std::unique_ptr<CompositorFrame> frame(new CompositorFrame); |
- frame->delegated_frame_data = base::WrapUnique(new DelegatedFrameData); |
- |
- DCHECK(root_surface_frame->delegated_frame_data); |
+ CompositorFrame frame; |
+ frame.delegated_frame_data = base::WrapUnique(new DelegatedFrameData); |
- dest_resource_list_ = &frame->delegated_frame_data->resource_list; |
- dest_pass_list_ = &frame->delegated_frame_data->render_pass_list; |
+ dest_resource_list_ = &frame.delegated_frame_data->resource_list; |
+ dest_pass_list_ = &frame.delegated_frame_data->render_pass_list; |
valid_surfaces_.clear(); |
PrewalkResult prewalk_result; |
@@ -807,7 +804,7 @@ std::unique_ptr<CompositorFrame> SurfaceAggregator::Aggregate( |
DCHECK(referenced_surfaces_.empty()); |
if (dest_pass_list_->empty()) |
- return nullptr; |
+ return CompositorFrame(); |
dest_pass_list_ = NULL; |
ProcessAddedAndRemovedSurfaces(); |
@@ -819,7 +816,7 @@ std::unique_ptr<CompositorFrame> SurfaceAggregator::Aggregate( |
++it) { |
Surface* surface = manager_->GetSurfaceForId(it->first); |
if (surface) |
- surface->TakeLatencyInfo(&frame->metadata.latency_info); |
+ surface->TakeLatencyInfo(&frame.metadata.latency_info); |
} |
// TODO(jamesr): Aggregate all resource references into the returned frame's |