66 lines
3.2 KiB
Diff
66 lines
3.2 KiB
Diff
From 56cb5f7da1025f6db869e840ed34d3b98b9ab899 Mon Sep 17 00:00:00 2001
|
||
From: Jose Dapena Paz <jose.dapena@lge.com>
|
||
Date: Tue, 29 May 2018 16:04:14 +0000
|
||
Subject: [PATCH] GCC: do not std::move unique ptr of forward declared UrlIndex
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
GCC fails to resolve the size of UrlIndex, needed
|
||
for moving a std::unique_ptr of UrlIndex. This is because
|
||
moved is done on a forward-declared UrlIndex.
|
||
|
||
To avoid the problem, move the call to std::move to the .cc
|
||
file so the full declaration is available.
|
||
|
||
Build error:
|
||
../../buildtools/third_party/libc++/trunk/include/memory: In instantiation of ‘void std::__1::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = bookmarks::UrlIndex]’:
|
||
../../buildtools/third_party/libc++/trunk/include/memory:2634:22: required from ‘void std::__1::unique_ptr<_Tp, _Dp>::reset(std::__1::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>; std::__1::unique_ptr<_Tp, _Dp>::pointer = bookmarks::UrlIndex*]’
|
||
../../buildtools/third_party/libc++/trunk/include/memory:2588:24: required from ‘std::__1::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>]’
|
||
../../components/bookmarks/browser/bookmark_storage.h:107:76: required from here
|
||
../../buildtools/third_party/libc++/trunk/include/memory:2317:25: error: invalid application of ‘sizeof’ to incomplete type ‘bookmarks::UrlIndex’
|
||
static_assert(sizeof(_Tp) > 0,
|
||
|
||
Bug: 819294
|
||
Change-Id: I793a807c28e797aaa2e31d9c8b7e09fb6ca6b9e7
|
||
Reviewed-on: https://chromium-review.googlesource.com/1071648
|
||
Commit-Queue: Scott Violet <sky@chromium.org>
|
||
Reviewed-by: Scott Violet <sky@chromium.org>
|
||
Cr-Commit-Position: refs/heads/master@{#562446}
|
||
---
|
||
components/bookmarks/browser/bookmark_storage.cc | 4 ++++
|
||
components/bookmarks/browser/bookmark_storage.h | 2 +-
|
||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||
|
||
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
|
||
index 1633ba1df2a4..3ae0c62292e7 100644
|
||
--- a/components/bookmarks/browser/bookmark_storage.cc
|
||
+++ b/components/bookmarks/browser/bookmark_storage.cc
|
||
@@ -158,6 +158,10 @@ void BookmarkLoadDetails::CreateUrlIndex() {
|
||
url_index_ = std::make_unique<UrlIndex>(std::move(root_node_));
|
||
}
|
||
|
||
+std::unique_ptr<UrlIndex> BookmarkLoadDetails::owned_url_index() {
|
||
+ return std::move(url_index_);
|
||
+}
|
||
+
|
||
BookmarkPermanentNode* BookmarkLoadDetails::CreatePermanentNode(
|
||
BookmarkClient* client,
|
||
BookmarkNode::Type type) {
|
||
diff --git a/components/bookmarks/browser/bookmark_storage.h b/components/bookmarks/browser/bookmark_storage.h
|
||
index 08df5bb65d83..0a1b1a1b65b9 100644
|
||
--- a/components/bookmarks/browser/bookmark_storage.h
|
||
+++ b/components/bookmarks/browser/bookmark_storage.h
|
||
@@ -104,7 +104,7 @@ class BookmarkLoadDetails {
|
||
bool ids_reassigned() const { return ids_reassigned_; }
|
||
|
||
void CreateUrlIndex();
|
||
- std::unique_ptr<UrlIndex> owned_url_index() { return std::move(url_index_); }
|
||
+ std::unique_ptr<UrlIndex> owned_url_index();
|
||
|
||
private:
|
||
// Creates one of the possible permanent nodes (bookmark bar node, other node
|
||
--
|
||
2.17.1
|
||
|