Properly down-cast a sentinal node pointer through void*
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260526 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -917,6 +917,7 @@ public:
|
|||||||
typedef typename _NodeTypes::__node_type __node;
|
typedef typename _NodeTypes::__node_type __node;
|
||||||
typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator;
|
typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator;
|
||||||
typedef allocator_traits<__node_allocator> __node_traits;
|
typedef allocator_traits<__node_allocator> __node_traits;
|
||||||
|
typedef typename _NodeTypes::__void_pointer __void_pointer;
|
||||||
typedef typename _NodeTypes::__node_pointer __node_pointer;
|
typedef typename _NodeTypes::__node_pointer __node_pointer;
|
||||||
typedef typename _NodeTypes::__node_pointer __node_const_pointer;
|
typedef typename _NodeTypes::__node_pointer __node_const_pointer;
|
||||||
typedef typename _NodeTypes::__node_base_type __first_node;
|
typedef typename _NodeTypes::__node_base_type __first_node;
|
||||||
@@ -1955,7 +1956,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const&
|
|||||||
__node_pointer __pn = __bucket_list_[__chash];
|
__node_pointer __pn = __bucket_list_[__chash];
|
||||||
if (__pn == nullptr)
|
if (__pn == nullptr)
|
||||||
{
|
{
|
||||||
__pn = static_cast<__node_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first()));
|
__pn = static_cast<__node_pointer>(static_cast<__void_pointer>(pointer_traits<__node_base_pointer>::pointer_to(__p1_.first())));
|
||||||
__h->__next_ = __pn->__next_;
|
__h->__next_ = __pn->__next_;
|
||||||
__pn->__next_ = __h.get();
|
__pn->__next_ = __h.get();
|
||||||
// fix up __bucket_list_
|
// fix up __bucket_list_
|
||||||
|
|||||||
Reference in New Issue
Block a user