summaryrefslogtreecommitdiff
path: root/include/list
diff options
context:
space:
mode:
Diffstat (limited to 'include/list')
-rw-r--r--include/list8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/list b/include/list
index 32e9a27bd2a4b..f884b168126f4 100644
--- a/include/list
+++ b/include/list
@@ -2058,15 +2058,15 @@ list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __f, con
#endif
if (__f != __l)
{
+ __link_pointer __first = __f.__ptr_;
+ --__l;
+ __link_pointer __last = __l.__ptr_;
if (this != &__c)
{
- size_type __s = _VSTD::distance(__f, __l);
+ size_type __s = _VSTD::distance(__f, __l) + 1;
__c.__sz() -= __s;
base::__sz() += __s;
}
- __link_pointer __first = __f.__ptr_;
- --__l;
- __link_pointer __last = __l.__ptr_;
base::__unlink_nodes(__first, __last);
__link_nodes(__p.__ptr_, __first, __last);
#if _LIBCPP_DEBUG_LEVEL >= 2