00537 {
00538 FXuint memload=FXProcess::memoryFull(), dictcount=dict.count(), dictsize=dict.size();
00539 FXuint newsize=dictsize;
00540 if(dictcount<=16+48*dicttype::HasSlowKeyCompare
00541 #ifndef FXDISABLE_QDICTSLOWINSERTSOPT
00542 || dict.dictionaryBias()<16 )
00543 #else
00544 )
00545 #endif
00546 {
00547 newsize=1;
00548 }
00549 else if(memload || dictcount>=dictsize/2 || (dictsize>=15 && dictcount<=dictsize/4))
00550 {
00551 const FXuint *primes=fx2powerprimes(dictcount*2);
00552 newsize=primes[memload];
00553 }
00554 if(newsize!=dictsize)
00555 {
00556 #ifdef DEBUG
00557 fxmessage("QDICTDYNRESIZE at %s:%d resizing %p from %u to %u (load %d)\n", file, lineno, &(dict), dictsize, newsize, memload);
00558 #endif
00559 dict.safeResize(newsize);
00560 return true;
00561 }
00562 return false;
00563 }