void __libcpp_db::__iterator_copy(void* __i, const void* __i0) { WLock _(mut()); __i_node* i = __find_iterator(__i); __i_node* i0 = __find_iterator(__i0); __c_node* c0 = i0 != nullptr ? i0->__c_ : nullptr; if (i == nullptr && c0 != nullptr) i = __insert_iterator(__i); __c_node* c = i != nullptr ? i->__c_ : nullptr; if (c != c0) { if (c != nullptr) c->__remove(i); if (i != nullptr) { i->__c_ = nullptr; if (c0 != nullptr) { i->__c_ = c0; i->__c_->__add(i); } } } }
bool __libcpp_db::__comparable(const void* __i, const void* __j) const { RLock _(mut()); __i_node* i = __find_iterator(__i); __i_node* j = __find_iterator(__j); __c_node* ci = i != nullptr ? i->__c_ : nullptr; __c_node* cj = j != nullptr ? j->__c_ : nullptr; return ci != nullptr && ci == cj; }
bool __libcpp_db::__less_than_comparable(const void* __i, const void* __j) const { #ifndef _LIBCPP_HAS_NO_THREADS RLock _(mut()); #endif __i_node* i = __find_iterator(__i); __i_node* j = __find_iterator(__j); __c_node* ci = i != nullptr ? i->__c_ : nullptr; __c_node* cj = j != nullptr ? j->__c_ : nullptr; return ci != nullptr && ci == cj; }
bool __libcpp_db::__subscriptable(const void* __i, ptrdiff_t __n) const { RLock _(mut()); __i_node* i = __find_iterator(__i); return i != nullptr && i->__c_ != nullptr && i->__c_->__subscriptable(__i, __n); }
bool __libcpp_db::__decrementable(const void* __i) const { RLock _(mut()); __i_node* i = __find_iterator(__i); return i != nullptr && i->__c_ != nullptr && i->__c_->__decrementable(__i); }
void* __libcpp_db::__find_c_from_i(void* __i) const { RLock _(mut()); __i_node* i = __find_iterator(__i); _LIBCPP_ASSERT(i != nullptr, "iterator not found in debug database."); return i->__c_ != nullptr ? i->__c_->__c_ : nullptr; }
void* __libcpp_db::__find_c_from_i(void* __i) const { RLock _(mut()); __i_node* i = __find_iterator(__i); _LIBCPP_ASSERT(i != nullptr, "iterator constructed in translation unit with debug mode not enabled." " #define _LIBCPP_DEBUG2 1 for that translation unit."); return i->__c_ != nullptr ? i->__c_->__c_ : nullptr; }
bool __libcpp_db::__subscriptable(const void* __i, ptrdiff_t __n) const { #ifndef _LIBCPP_HAS_NO_THREADS RLock _(mut()); #endif __i_node* i = __find_iterator(__i); return i != nullptr && i->__c_ != nullptr && i->__c_->__subscriptable(__i, __n); }
bool __libcpp_db::__decrementable(const void* __i) const { #ifndef _LIBCPP_HAS_NO_THREADS RLock _(mut()); #endif __i_node* i = __find_iterator(__i); return i != nullptr && i->__c_ != nullptr && i->__c_->__decrementable(__i); }