diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index c9d68df640a5..0461b7d74eb8 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -70,13 +70,10 @@ const char* kWebRuntimeFeatures[] = { // Convert draggable regions in raw format to SkRegion format. Caller is // responsible for deleting the returned SkRegion instance. -SkRegion* DraggableRegionsToSkRegion( +scoped_ptr DraggableRegionsToSkRegion( const std::vector& regions) { - SkRegion* sk_region = new SkRegion; - for (std::vector::const_iterator iter = regions.begin(); - iter != regions.end(); - ++iter) { - const DraggableRegion& region = *iter; + scoped_ptr sk_region(new SkRegion); + for (const DraggableRegion& region : regions) { sk_region->op( region.bounds.x(), region.bounds.y(), @@ -84,7 +81,7 @@ SkRegion* DraggableRegionsToSkRegion( region.bounds.bottom(), region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); } - return sk_region; + return sk_region.Pass(); } } // namespace @@ -583,8 +580,7 @@ void NativeWindow::UpdateDraggableRegions( // Draggable region is not supported for non-frameless window. if (has_frame_) return; - - draggable_region_.reset(DraggableRegionsToSkRegion(regions)); + draggable_region_ = DraggableRegionsToSkRegion(regions); } void NativeWindow::ScheduleUnresponsiveEvent(int ms) {