From 0aeaee3dd895eda3953d35193756724d3235c0bf Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 6 Mar 2018 02:13:13 +0000 Subject: [PATCH 5/7] GCC: explicitely std::move to base::Optional instead of implicit conversion to base::Optional in return GCC 7.2/7.3 complains in this pattern of code: base::Optional Method() { ... Foo response; ... return response; } It seems it cannot properly resolve the implicit move to base::Optional, and ends up failing to compile. To avoid that, this change explicitely moves to base::Optional as return value: return base::Optional(std::move(response)); Change-Id: Ic0390e1c31340dc34a71bb4175bd63a4631248d6 Reviewed-on: https://chromium-review.googlesource.com/944402 Commit-Queue: Victor Costan Reviewed-by: Matt Falkenhagen Reviewed-by: Victor Costan Reviewed-by: Reilly Grant Cr-Commit-Position: refs/heads/master@{#541029} --- content/browser/appcache/appcache_request_handler.cc | 2 +- .../service_worker_controllee_request_handler.cc | 2 +- device/fido/device_response_converter.cc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/content/browser/appcache/appcache_request_handler.cc b/content/browser/appcache/appcache_request_handler.cc index 63cc984b4276..ff638ab56571 100644 --- a/content/browser/appcache/appcache_request_handler.cc +++ b/content/browser/appcache/appcache_request_handler.cc @@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubresourceLoaderParams() { SubresourceLoaderParams params; params.loader_factory_info = factory_ptr.PassInterface(); - return params; + return base::Optional(std::move(params)); } void AppCacheRequestHandler::MaybeCreateSubresourceLoader( diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc index 2ed0c353cad3..5b09f6d670c4 100644 --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc @@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::MaybeCreateSubresourceLoaderParams() { controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle( provider_host_->controller()); params.controller_service_worker_info = std::move(controller_info); - return params; + return base::Optional(std::move(params)); } void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( diff --git a/device/fido/device_response_converter.cc b/device/fido/device_response_converter.cc index 050ff2fc5d10..096f9f44872b 100644 --- a/device/fido/device_response_converter.cc +++ b/device/fido/device_response_converter.cc @@ -121,7 +121,7 @@ base::Optional ReadCTAPGetAssertionResponse( response.SetNumCredentials(it->second.GetUnsigned()); } - return response; + return base::Optional(std::move(response)); } base::Optional ReadCTAPGetInfoResponse( @@ -241,7 +241,7 @@ base::Optional ReadCTAPGetInfoResponse( response.SetPinProtocols(std::move(supported_pin_protocols)); } - return response; + return base::Optional(std::move(response)); } } // namespace device -- 2.17.0