00578 {
00579 FXuint memload=FXProcess::memoryFull(), dictcount=dict.count(), dictsize=dict.size();
00580 FXuint newsize=dictsize;
00581 if(dictcount<=16+48*dicttype::HasSlowKeyCompare
00582 #ifndef FXDISABLE_QDICTSLOWINSERTSOPT
00583 || dict.dictionaryBias()<16 )
00584 #else
00585 )
00586 #endif
00587 {
00588 newsize=1;
00589 }
00590 else if(dictcount>=dictsize/2 || (memload && dictsize>=31 && dictcount<=dictsize/8))
00591 {
00592 const FXuint *primes=fx2powerprimes(dictcount*2);
00593 newsize=primes[0];
00594 }
00595 if(newsize!=dictsize)
00596 {
00597 #ifdef DEBUG
00598 fxmessage("QDICTDYNRESIZEAGGR at %s:%d resizing %p from %u to %u (load %d)\n", file, lineno, &(dict), dictsize, newsize, memload);
00599 #endif
00600 dict.safeResize(newsize);
00601 return true;
00602 }
00603 return false;
00604 }