Merge pull request #741 from ShFil119/fix/make_space
Fix unsigned comparison in CStreaming::MakeSpaceFor(int32 size)
This commit is contained in:
commit
c31e3e6823
@ -2436,12 +2436,17 @@ CStreaming::DeleteRwObjectsNotInFrustumInSectorList(CPtrList &list, size_t mem)
|
|||||||
void
|
void
|
||||||
CStreaming::MakeSpaceFor(int32 size)
|
CStreaming::MakeSpaceFor(int32 size)
|
||||||
{
|
{
|
||||||
// BUG: ms_memoryAvailable can be uninitialized
|
#ifdef FIX_BUGS
|
||||||
// the code still happens to work in that case because ms_memoryAvailable is unsigned
|
#define MB (1024 * 1024)
|
||||||
// but it's not nice....
|
if(ms_memoryAvailable == 0) {
|
||||||
|
extern size_t _dwMemAvailPhys;
|
||||||
|
ms_memoryAvailable = (_dwMemAvailPhys - 10 * MB) / 2;
|
||||||
|
if(ms_memoryAvailable < 50 * MB) ms_memoryAvailable = 50 * MB;
|
||||||
|
}
|
||||||
|
#undef MB
|
||||||
|
#endif
|
||||||
while(ms_memoryUsed >= ms_memoryAvailable - size)
|
while(ms_memoryUsed >= ms_memoryAvailable - size)
|
||||||
if(!RemoveLeastUsedModel()){
|
if(!RemoveLeastUsedModel()) {
|
||||||
DeleteRwObjectsBehindCamera(ms_memoryAvailable - size);
|
DeleteRwObjectsBehindCamera(ms_memoryAvailable - size);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user