| 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
|
|
|