disabled size control

This commit is contained in:
joaquintides
2023-12-13 13:35:10 +01:00
parent 116d2807f4
commit aaf553581f

View File

@ -841,7 +841,8 @@ public:
auto mco=group_type::maybe_caused_overflow(pc); auto mco=group_type::maybe_caused_overflow(pc);
if(reinterpret_cast<std::atomic<unsigned char>*>(pg)[n]. if(reinterpret_cast<std::atomic<unsigned char>*>(pg)[n].
compare_exchange_strong(expected,1)){ compare_exchange_strong(expected,1)){
super::erase(pg,n,p); super::destroy_element(p);
pg->reset(n);
//retire_element(static_cast<std::size_t>(p-this->arrays.elements()),mco); //retire_element(static_cast<std::size_t>(p-this->arrays.elements()),mco);
res=1; res=1;
} }
@ -1593,8 +1594,9 @@ private:
if(unprotected_visit( if(unprotected_visit(
access_mode,k,pos0,hash,std::forward<F>(f)))return 0; access_mode,k,pos0,hash,std::forward<F>(f)))return 0;
reserve_size rsize(*this); //reserve_size rsize(*this);
if(BOOST_LIKELY(rsize.succeeded())){ //if(BOOST_LIKELY(rsize.succeeded())){
if(true){
for(prober pb(pos0);;pb.next(this->arrays.groups_size_mask)){ for(prober pb(pos0);;pb.next(this->arrays.groups_size_mask)){
auto pos=pb.get(); auto pos=pb.get();
auto pg=this->arrays.groups()+pos; auto pg=this->arrays.groups()+pos;
@ -1616,7 +1618,7 @@ private:
auto p=this->arrays.elements()+pos*N+n; auto p=this->arrays.elements()+pos*N+n;
this->construct_element(p,std::forward<Args>(args)...); this->construct_element(p,std::forward<Args>(args)...);
pg->set(n,hash); pg->set(n,hash);
rsize.commit(); //rsize.commit();
return 1; return 1;
} }
pg->mark_overflow(hash); pg->mark_overflow(hash);