Chromium Code Reviews| Index: webrtc/modules/desktop_capture/cropped_desktop_frame.cc |
| diff --git a/webrtc/modules/desktop_capture/cropped_desktop_frame.cc b/webrtc/modules/desktop_capture/cropped_desktop_frame.cc |
| index 733fe9b2adf5dc244087a04411305f7dff63afb3..b26d5b0600acf27da8d7cdf4044e93605e66c589 100644 |
| --- a/webrtc/modules/desktop_capture/cropped_desktop_frame.cc |
| +++ b/webrtc/modules/desktop_capture/cropped_desktop_frame.cc |
| @@ -19,7 +19,8 @@ namespace webrtc { |
| // A DesktopFrame that is a sub-rect of another DesktopFrame. |
| class CroppedDesktopFrame : public DesktopFrame { |
| public: |
| - CroppedDesktopFrame(DesktopFrame* frame, const DesktopRect& rect); |
| + CroppedDesktopFrame(std::unique_ptr<DesktopFrame> frame, |
| + const DesktopRect& rect); |
| private: |
| std::unique_ptr<DesktopFrame> frame_; |
| @@ -27,23 +28,23 @@ class CroppedDesktopFrame : public DesktopFrame { |
| RTC_DISALLOW_COPY_AND_ASSIGN(CroppedDesktopFrame); |
| }; |
| -DesktopFrame* |
| -CreateCroppedDesktopFrame(DesktopFrame* frame, const DesktopRect& rect) { |
| - if (!DesktopRect::MakeSize(frame->size()).ContainsRect(rect)) { |
| - delete frame; |
| - return NULL; |
| - } |
| +std::unique_ptr<DesktopFrame> CreateCroppedDesktopFrame( |
| + std::unique_ptr<DesktopFrame> frame, |
| + const DesktopRect& rect) { |
| + if (!DesktopRect::MakeSize(frame->size()).ContainsRect(rect)) |
| + return nullptr; |
| - return new CroppedDesktopFrame(frame, rect); |
| + return std::unique_ptr<DesktopFrame>( |
| + new CroppedDesktopFrame(std::move(frame), rect)); |
| } |
| -CroppedDesktopFrame::CroppedDesktopFrame(DesktopFrame* frame, |
| +CroppedDesktopFrame::CroppedDesktopFrame(std::unique_ptr<DesktopFrame> frame, |
| const DesktopRect& rect) |
| : DesktopFrame(rect.size(), |
| frame->stride(), |
| frame->GetFrameDataAtPos(rect.top_left()), |
| - frame->shared_memory()), |
| - frame_(frame) { |
| + frame->shared_memory()) { |
| + frame_ = std::move(frame); |
|
Wez
2016/05/18 01:29:50
Why does this need to be assignment, and not initi
Sergey Ulanov
2016/05/31 12:02:48
initializers don't guarantee order in which argume
Wez
2016/06/01 21:29:04
nit: In this case DesktopFrame() (immediate base c
|
| } |
| } // namespace webrtc |