Attila Bukor has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/10549


Change subject: make_shared: fix build for newer libc++
......................................................................

make_shared: fix build for newer libc++

Previously, we used friendship with various internal classes in the 'std'
namespace to allow make_shared to work against classes with private
constructors. With the version of libc++ that comes with LLVM 6, these
tricks no longer work and I was unable to find a suitable friend definition.

This patch switches to using a different approach based on constructing
a locally-scoped subclass of the target class.

I also noticed that TypeEncodingInfo and TypeInfo were only using shared_ptr
due to the pre-C++11 prohibition of scoped_ptrs in containers, so switched
them to unique_ptr.

Change-Id: Ib0dd0338ee531ab3578ba7291637860b56ba6230
Reviewed-on: http://gerrit.cloudera.org:8080/9847
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo <[email protected]>
(cherry picked from commit 61d3fff2fd93358b6c71aaec14189bf7f55de99a)
---
M src/kudu/cfile/type_encodings.cc
M src/kudu/cfile/type_encodings.h
M src/kudu/common/types.cc
M src/kudu/common/types.h
M src/kudu/consensus/log_reader.cc
M src/kudu/consensus/log_reader.h
M src/kudu/consensus/raft_consensus.cc
M src/kudu/consensus/raft_consensus.h
M src/kudu/master/ts_descriptor.cc
M src/kudu/master/ts_descriptor.h
M src/kudu/rpc/periodic.cc
M src/kudu/rpc/periodic.h
M src/kudu/util/make_shared.h
13 files changed, 80 insertions(+), 84 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/49/10549/1
--
To view, visit http://gerrit.cloudera.org:8080/10549
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: branch-1.7.x
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib0dd0338ee531ab3578ba7291637860b56ba6230
Gerrit-Change-Number: 10549
Gerrit-PatchSet: 1
Gerrit-Owner: Attila Bukor <[email protected]>
Gerrit-Reviewer: Todd Lipcon <[email protected]>

Reply via email to