Skip to content

Commit 97a24fb

Browse files
committed
Inline the casts
1 parent d3fa07b commit 97a24fb

File tree

1 file changed

+41
-51
lines changed

1 file changed

+41
-51
lines changed

libcxx/include/forward_list

+41-51
Original file line numberDiff line numberDiff line change
@@ -294,10 +294,6 @@ struct __forward_node_traits {
294294
"is being broken between LLVM 19 and LLVM 20. If you don't care about your ABI being broken, define "
295295
"the _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB macro to silence this diagnostic.");
296296
# endif
297-
298-
_LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
299-
return static_cast<__begin_node_pointer>(__p);
300-
}
301297
};
302298

303299
template <class _NodePtr>
@@ -309,10 +305,6 @@ struct __forward_begin_node {
309305

310306
_LIBCPP_HIDE_FROM_ABI __forward_begin_node() : __next_(nullptr) {}
311307
_LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
312-
313-
_LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
314-
return static_cast<__begin_node_pointer>(__next_);
315-
}
316308
};
317309

318310
template <class _Tp, class _VoidPtr>
@@ -363,15 +355,12 @@ class _LIBCPP_TEMPLATE_VIS __forward_list_iterator {
363355

364356
__begin_node_pointer __ptr_;
365357

366-
_LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
367-
_LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const { return static_cast<__node_pointer>(__ptr_); }
368-
369358
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT : __ptr_(nullptr) {}
370359

371360
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(__begin_node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
372361

373362
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT
374-
: __ptr_(__traits::__as_iter_node(__p)) {}
363+
: __ptr_(static_cast<__begin_node_pointer>(__p)) {}
375364

376365
template <class, class>
377366
friend class _LIBCPP_TEMPLATE_VIS forward_list;
@@ -387,13 +376,13 @@ public:
387376

388377
_LIBCPP_HIDE_FROM_ABI __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {}
389378

390-
_LIBCPP_HIDE_FROM_ABI reference operator*() const { return __get_unsafe_node_pointer()->__get_value(); }
379+
_LIBCPP_HIDE_FROM_ABI reference operator*() const { return static_cast<__node_pointer>(__ptr_)->__get_value(); }
391380
_LIBCPP_HIDE_FROM_ABI pointer operator->() const {
392-
return pointer_traits<pointer>::pointer_to(__get_unsafe_node_pointer()->__get_value());
381+
return pointer_traits<pointer>::pointer_to(static_cast<__node_pointer>(__ptr_)->__get_value());
393382
}
394383

395384
_LIBCPP_HIDE_FROM_ABI __forward_list_iterator& operator++() {
396-
__ptr_ = __traits::__as_iter_node(__ptr_->__next_);
385+
__ptr_ = static_cast<__begin_node_pointer>(__ptr_->__next_);
397386
return *this;
398387
}
399388
_LIBCPP_HIDE_FROM_ABI __forward_list_iterator operator++(int) {
@@ -423,15 +412,12 @@ class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator {
423412

424413
__begin_node_pointer __ptr_;
425414

426-
_LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
427-
_LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const { return static_cast<__node_pointer>(__ptr_); }
428-
429415
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT : __ptr_(nullptr) {}
430416

431417
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(__begin_node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
432418

433419
_LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(__node_pointer __p) _NOEXCEPT
434-
: __ptr_(__traits::__as_iter_node(__p)) {}
420+
: __ptr_(static_cast<__begin_node_pointer>(__p)) {}
435421

436422
template <class, class>
437423
friend class forward_list;
@@ -447,13 +433,13 @@ public:
447433
_LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT
448434
: __ptr_(__p.__ptr_) {}
449435

450-
_LIBCPP_HIDE_FROM_ABI reference operator*() const { return __get_unsafe_node_pointer()->__get_value(); }
436+
_LIBCPP_HIDE_FROM_ABI reference operator*() const { return static_cast<__node_pointer>(__ptr_)->__get_value(); }
451437
_LIBCPP_HIDE_FROM_ABI pointer operator->() const {
452-
return pointer_traits<pointer>::pointer_to(__get_unsafe_node_pointer()->__get_value());
438+
return pointer_traits<pointer>::pointer_to(static_cast<__node_pointer>(__ptr_)->__get_value());
453439
}
454440

455441
_LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator& operator++() {
456-
__ptr_ = __traits::__as_iter_node(__ptr_->__next_);
442+
__ptr_ = static_cast<__begin_node_pointer>(__ptr_->__next_);
457443
return *this;
458444
}
459445
_LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator operator++(int) {
@@ -903,7 +889,8 @@ inline forward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a) : __ba
903889
template <class _Tp, class _Alloc>
904890
forward_list<_Tp, _Alloc>::forward_list(size_type __n) {
905891
if (__n > 0) {
906-
for (__begin_node_pointer __p = __base::__before_begin(); __n > 0; --__n, __p = __p->__next_as_begin()) {
892+
for (__begin_node_pointer __p = __base::__before_begin(); __n > 0;
893+
--__n, __p = static_cast<__begin_node_pointer>(__p->__next_)) {
907894
__p->__next_ = this->__create_node(/* next = */ nullptr);
908895
}
909896
}
@@ -913,7 +900,8 @@ forward_list<_Tp, _Alloc>::forward_list(size_type __n) {
913900
template <class _Tp, class _Alloc>
914901
forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __base_alloc) : __base(__base_alloc) {
915902
if (__n > 0) {
916-
for (__begin_node_pointer __p = __base::__before_begin(); __n > 0; --__n, __p = __p->__next_as_begin()) {
903+
for (__begin_node_pointer __p = __base::__before_begin(); __n > 0;
904+
--__n, __p = static_cast<__begin_node_pointer>(__p->__next_)) {
917905
__p->__next_ = this->__create_node(/* next = */ nullptr);
918906
}
919907
}
@@ -1097,15 +1085,15 @@ template <class _Tp, class _Alloc>
10971085
template <class... _Args>
10981086
typename forward_list<_Tp, _Alloc>::iterator
10991087
forward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args) {
1100-
__begin_node_pointer const __r = __p.__get_begin();
1088+
__begin_node_pointer const __r = __p.__ptr_;
11011089
__r->__next_ = this->__create_node(/* next = */ __r->__next_, std::forward<_Args>(__args)...);
11021090
return iterator(__r->__next_);
11031091
}
11041092

11051093
template <class _Tp, class _Alloc>
11061094
typename forward_list<_Tp, _Alloc>::iterator
11071095
forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v) {
1108-
__begin_node_pointer const __r = __p.__get_begin();
1096+
__begin_node_pointer const __r = __p.__ptr_;
11091097
__r->__next_ = this->__create_node(/* next = */ __r->__next_, std::move(__v));
11101098
return iterator(__r->__next_);
11111099
}
@@ -1115,15 +1103,15 @@ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v) {
11151103
template <class _Tp, class _Alloc>
11161104
typename forward_list<_Tp, _Alloc>::iterator
11171105
forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __v) {
1118-
__begin_node_pointer const __r = __p.__get_begin();
1106+
__begin_node_pointer const __r = __p.__ptr_;
11191107
__r->__next_ = this->__create_node(/* next = */ __r->__next_, __v);
11201108
return iterator(__r->__next_);
11211109
}
11221110

11231111
template <class _Tp, class _Alloc>
11241112
typename forward_list<_Tp, _Alloc>::iterator
11251113
forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n, const value_type& __v) {
1126-
__begin_node_pointer __r = __p.__get_begin();
1114+
__begin_node_pointer __r = __p.__ptr_;
11271115
if (__n > 0) {
11281116
__node_pointer __first = this->__create_node(/* next = */ nullptr, __v);
11291117
__node_pointer __last = __first;
@@ -1161,7 +1149,7 @@ template <class _Tp, class _Alloc>
11611149
template <class _InputIterator, class _Sentinel>
11621150
_LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Alloc>::iterator
11631151
forward_list<_Tp, _Alloc>::__insert_after_with_sentinel(const_iterator __p, _InputIterator __f, _Sentinel __l) {
1164-
__begin_node_pointer __r = __p.__get_begin();
1152+
__begin_node_pointer __r = __p.__ptr_;
11651153

11661154
if (__f != __l) {
11671155
__node_pointer __first = this->__create_node(/* next = */ nullptr, *__f);
@@ -1194,7 +1182,7 @@ forward_list<_Tp, _Alloc>::__insert_after_with_sentinel(const_iterator __p, _Inp
11941182

11951183
template <class _Tp, class _Alloc>
11961184
typename forward_list<_Tp, _Alloc>::iterator forward_list<_Tp, _Alloc>::erase_after(const_iterator __f) {
1197-
__begin_node_pointer __p = __f.__get_begin();
1185+
__begin_node_pointer __p = __f.__ptr_;
11981186
__node_pointer __n = __p->__next_;
11991187
__p->__next_ = __n->__next_;
12001188
this->__delete_node(__n);
@@ -1204,9 +1192,9 @@ typename forward_list<_Tp, _Alloc>::iterator forward_list<_Tp, _Alloc>::erase_af
12041192
template <class _Tp, class _Alloc>
12051193
typename forward_list<_Tp, _Alloc>::iterator
12061194
forward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l) {
1207-
__node_pointer __e = __l.__get_unsafe_node_pointer();
1195+
__node_pointer __e = static_cast<__node_pointer>(__l.__ptr_);
12081196
if (__f != __l) {
1209-
__begin_node_pointer __bp = __f.__get_begin();
1197+
__begin_node_pointer __bp = __f.__ptr_;
12101198

12111199
__node_pointer __n = __bp->__next_;
12121200
if (__n != __e) {
@@ -1234,7 +1222,8 @@ void forward_list<_Tp, _Alloc>::resize(size_type __n) {
12341222
else {
12351223
__n -= __sz;
12361224
if (__n > 0) {
1237-
for (__begin_node_pointer __ptr = __p.__get_begin(); __n > 0; --__n, __ptr = __ptr->__next_as_begin()) {
1225+
for (__begin_node_pointer __ptr = __p.__ptr_; __n > 0;
1226+
--__n, __ptr = static_cast<__begin_node_pointer>(__ptr->__next_)) {
12381227
__ptr->__next_ = this->__create_node(/* next = */ nullptr);
12391228
}
12401229
}
@@ -1254,7 +1243,8 @@ void forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) {
12541243
else {
12551244
__n -= __sz;
12561245
if (__n > 0) {
1257-
for (__begin_node_pointer __ptr = __p.__get_begin(); __n > 0; --__n, __ptr = __ptr->__next_as_begin()) {
1246+
for (__begin_node_pointer __ptr = __p.__ptr_; __n > 0;
1247+
--__n, __ptr = static_cast<__begin_node_pointer>(__ptr->__next_)) {
12581248
__ptr->__next_ = this->__create_node(/* next = */ nullptr, __v);
12591249
}
12601250
}
@@ -1264,13 +1254,13 @@ void forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) {
12641254
template <class _Tp, class _Alloc>
12651255
void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& __x) {
12661256
if (!__x.empty()) {
1267-
if (__p.__get_begin()->__next_ != nullptr) {
1257+
if (__p.__ptr_->__next_ != nullptr) {
12681258
const_iterator __lm1 = __x.before_begin();
1269-
while (__lm1.__get_begin()->__next_ != nullptr)
1259+
while (__lm1.__ptr_->__next_ != nullptr)
12701260
++__lm1;
1271-
__lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;
1261+
__lm1.__ptr_->__next_ = __p.__ptr_->__next_;
12721262
}
1273-
__p.__get_begin()->__next_ = __x.__before_begin()->__next_;
1263+
__p.__ptr_->__next_ = __x.__before_begin()->__next_;
12741264
__x.__before_begin()->__next_ = nullptr;
12751265
}
12761266
}
@@ -1279,9 +1269,9 @@ template <class _Tp, class _Alloc>
12791269
void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& /*__other*/, const_iterator __i) {
12801270
const_iterator __lm1 = std::next(__i);
12811271
if (__p != __i && __p != __lm1) {
1282-
__i.__get_begin()->__next_ = __lm1.__get_begin()->__next_;
1283-
__lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;
1284-
__p.__get_begin()->__next_ = __lm1.__get_unsafe_node_pointer();
1272+
__i.__ptr_->__next_ = __lm1.__ptr_->__next_;
1273+
__lm1.__ptr_->__next_ = __p.__ptr_->__next_;
1274+
__p.__ptr_->__next_ = static_cast<__node_pointer>(__lm1.__ptr_);
12851275
}
12861276
}
12871277

@@ -1290,12 +1280,12 @@ void forward_list<_Tp, _Alloc>::splice_after(
12901280
const_iterator __p, forward_list& /*__other*/, const_iterator __f, const_iterator __l) {
12911281
if (__f != __l && __p != __f) {
12921282
const_iterator __lm1 = __f;
1293-
while (__lm1.__get_begin()->__next_ != __l.__get_begin())
1283+
while (__lm1.__ptr_->__next_ != __l.__ptr_)
12941284
++__lm1;
12951285
if (__f != __lm1) {
1296-
__lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;
1297-
__p.__get_begin()->__next_ = __f.__get_begin()->__next_;
1298-
__f.__get_begin()->__next_ = __l.__get_unsafe_node_pointer();
1286+
__lm1.__ptr_->__next_ = __p.__ptr_->__next_;
1287+
__p.__ptr_->__next_ = __f.__ptr_->__next_;
1288+
__f.__ptr_->__next_ = static_cast<__node_pointer>(__l.__ptr_);
12991289
}
13001290
}
13011291
}
@@ -1322,8 +1312,8 @@ typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Allo
13221312
forward_list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing
13231313
typename forward_list<_Tp, _Alloc>::size_type __count_removed = 0;
13241314
const iterator __e = end();
1325-
for (iterator __i = before_begin(); __i.__get_begin()->__next_ != nullptr;) {
1326-
if (__i.__get_begin()->__next_->__get_value() == __v) {
1315+
for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;) {
1316+
if (__i.__ptr_->__next_->__get_value() == __v) {
13271317
++__count_removed;
13281318
iterator __j = std::next(__i, 2);
13291319
for (; __j != __e && *__j == __v; ++__j)
@@ -1345,8 +1335,8 @@ typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Allo
13451335
forward_list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing
13461336
typename forward_list<_Tp, _Alloc>::size_type __count_removed = 0;
13471337
const iterator __e = end();
1348-
for (iterator __i = before_begin(); __i.__get_begin()->__next_ != nullptr;) {
1349-
if (__pred(__i.__get_begin()->__next_->__get_value())) {
1338+
for (iterator __i = before_begin(); __i.__ptr_->__next_ != nullptr;) {
1339+
if (__pred(__i.__ptr_->__next_->__get_value())) {
13501340
++__count_removed;
13511341
iterator __j = std::next(__i, 2);
13521342
for (; __j != __e && __pred(*__j); ++__j)
@@ -1372,7 +1362,7 @@ forward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred) {
13721362
iterator __j = std::next(__i);
13731363
for (; __j != __e && __binary_pred(*__i, *__j); ++__j)
13741364
++__count_removed;
1375-
if (__i.__get_begin()->__next_ != __j.__get_unsafe_node_pointer())
1365+
if (__i.__ptr_->__next_ != static_cast<__node_pointer>(__j.__ptr_))
13761366
__deleted_nodes.splice_after(__deleted_nodes.before_begin(), *this, __i, __j);
13771367
__i = __j;
13781368
}
@@ -1452,7 +1442,7 @@ forward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz, _Co
14521442
}
14531443
difference_type __sz1 = __sz / 2;
14541444
difference_type __sz2 = __sz - __sz1;
1455-
__node_pointer __t = std::next(iterator(__f1), __sz1 - 1).__get_unsafe_node_pointer();
1445+
__node_pointer __t = static_cast<__node_pointer>(std::next(iterator(__f1), __sz1 - 1).__ptr_);
14561446
__node_pointer __f2 = __t->__next_;
14571447
__t->__next_ = nullptr;
14581448
return __merge(__sort(__f1, __sz1, __comp), __sort(__f2, __sz2, __comp), __comp);

0 commit comments

Comments
 (0)