Pull and merge from https://bitbucket.org/lindenlab/viewer-development.
commit
4db36dfcdc
4
.hgtags
4
.hgtags
|
|
@ -330,3 +330,7 @@ dd23d4da3bcb2ffda58569e759feb7c119982973 DRTVWR-224
|
|||
29075f8c1abed53dcf195a59f61744e27a91108f DRTVWR-226
|
||||
fba99f381b8d4ad1b7b42fa4993b29998d95be18 DRTVWR-179
|
||||
49ed253c80bed7410e238eeab35a9f14cb034364 3.4.1-beta6
|
||||
468ca3268229011a59df99229b24315844b33d34 DRTVWR-227
|
||||
524da902713e8b60322640b9825101add4a7c497 3.4.1-beta7
|
||||
173c2809f9873499c4b9d6bc044ec941c954d3fb DRTVWR-228
|
||||
1dc94555582f52718834081e7659e973ae4521f7 3.4.1-beta8
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ viewer-release.build_debug_release_separately = true
|
|||
viewer-release.build_viewer_update_version_manager = true
|
||||
viewer-release.codeticket_add_context = false
|
||||
|
||||
|
||||
# ========================================
|
||||
# mesh-development
|
||||
# ========================================
|
||||
|
|
|
|||
|
|
@ -252,21 +252,6 @@ U32 LLMemory::getAllocatedMemKB()
|
|||
return sAllocatedMemInKB ;
|
||||
}
|
||||
|
||||
void* ll_allocate (size_t size)
|
||||
{
|
||||
if (size == 0)
|
||||
{
|
||||
llwarns << "Null allocation" << llendl;
|
||||
}
|
||||
void *p = malloc(size);
|
||||
if (p == NULL)
|
||||
{
|
||||
LLMemory::freeReserve();
|
||||
llerrs << "Out of memory Error" << llendl;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#if defined(LL_WINDOWS)
|
||||
|
|
@ -1365,7 +1350,7 @@ char* LLPrivateMemoryPool::allocate(U32 size)
|
|||
//if the asked size larger than MAX_BLOCK_SIZE, fetch from heap directly, the pool does not manage it
|
||||
if(size >= CHUNK_SIZE)
|
||||
{
|
||||
return (char*)malloc(size) ;
|
||||
return (char*)ll_aligned_malloc_16(size) ;
|
||||
}
|
||||
|
||||
char* p = NULL ;
|
||||
|
|
@ -1422,7 +1407,7 @@ char* LLPrivateMemoryPool::allocate(U32 size)
|
|||
to_log = false ;
|
||||
}
|
||||
|
||||
return (char*)malloc(size) ;
|
||||
return (char*)ll_aligned_malloc_16(size) ;
|
||||
}
|
||||
|
||||
return p ;
|
||||
|
|
@ -1441,7 +1426,7 @@ void LLPrivateMemoryPool::freeMem(void* addr)
|
|||
|
||||
if(!chunk)
|
||||
{
|
||||
free(addr) ; //release from heap
|
||||
ll_aligned_free_16(addr) ; //release from heap
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -1565,7 +1550,7 @@ LLPrivateMemoryPool::LLMemoryChunk* LLPrivateMemoryPool::addChunk(S32 chunk_inde
|
|||
|
||||
mReservedPoolSize += preferred_size + overhead ;
|
||||
|
||||
char* buffer = (char*)malloc(preferred_size + overhead) ;
|
||||
char* buffer = (char*)ll_aligned_malloc_16(preferred_size + overhead) ;
|
||||
if(!buffer)
|
||||
{
|
||||
return NULL ;
|
||||
|
|
@ -1633,7 +1618,7 @@ void LLPrivateMemoryPool::removeChunk(LLMemoryChunk* chunk)
|
|||
mReservedPoolSize -= chunk->getBufferSize() ;
|
||||
|
||||
//release memory
|
||||
free(chunk->getBuffer()) ;
|
||||
ll_aligned_free_16(chunk->getBuffer()) ;
|
||||
}
|
||||
|
||||
U16 LLPrivateMemoryPool::findHashKey(const char* addr)
|
||||
|
|
@ -1977,7 +1962,7 @@ char* LLPrivateMemoryPoolManager::allocate(LLPrivateMemoryPool* poolp, U32 size,
|
|||
|
||||
if(!poolp)
|
||||
{
|
||||
p = (char*)malloc(size) ;
|
||||
p = (char*)ll_aligned_malloc_16(size) ;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -2006,7 +1991,7 @@ char* LLPrivateMemoryPoolManager::allocate(LLPrivateMemoryPool* poolp, U32 size)
|
|||
}
|
||||
else
|
||||
{
|
||||
return (char*)malloc(size) ;
|
||||
return (char*)ll_aligned_malloc_16(size) ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -2031,7 +2016,7 @@ void LLPrivateMemoryPoolManager::freeMem(LLPrivateMemoryPool* poolp, void* addr
|
|||
{
|
||||
if(!sPrivatePoolEnabled)
|
||||
{
|
||||
free(addr) ; //private pool is disabled.
|
||||
ll_aligned_free_16(addr) ; //private pool is disabled.
|
||||
}
|
||||
else if(!sInstance) //the private memory manager is destroyed, try the dangling list
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1665,6 +1665,12 @@ static void avg4_colors2(const U8* a, const U8* b, const U8* c, const U8* d, U8*
|
|||
dst[1] = (U8)(((U32)(a[1]) + b[1] + c[1] + d[1])>>2);
|
||||
}
|
||||
|
||||
void LLImageBase::setDataAndSize(U8 *data, S32 size)
|
||||
{
|
||||
ll_assert_aligned(data, 16);
|
||||
mData = data; mDataSize = size;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLImageBase::generateMip(const U8* indata, U8* mipdata, S32 width, S32 height, S32 nchannels)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ public:
|
|||
|
||||
protected:
|
||||
// special accessor to allow direct setting of mData and mDataSize by LLImageFormatted
|
||||
void setDataAndSize(U8 *data, S32 size) { mData = data; mDataSize = size; }
|
||||
void setDataAndSize(U8 *data, S32 size);
|
||||
|
||||
public:
|
||||
static void generateMip(const U8 *indata, U8* mipdata, int width, int height, S32 nchannels);
|
||||
|
|
|
|||
|
|
@ -510,7 +510,13 @@ void LLTexLayerSetBuffer::doUpload()
|
|||
BOOL valid = FALSE;
|
||||
LLPointer<LLImageJ2C> integrity_test = new LLImageJ2C;
|
||||
S32 file_size = 0;
|
||||
U8* data = LLVFile::readFile(gVFS, asset_id, LLAssetType::AT_TEXTURE, &file_size);
|
||||
|
||||
//data buffer MUST be allocated using LLImageBase
|
||||
LLVFile file(gVFS, asset_id, LLAssetType::AT_TEXTURE);
|
||||
file_size = file.getSize();
|
||||
U8* data = integrity_test->allocateData(file_size);
|
||||
file.read(data, file_size);
|
||||
|
||||
if (data)
|
||||
{
|
||||
valid = integrity_test->validate(data, file_size); // integrity_test will delete 'data'
|
||||
|
|
|
|||
Loading…
Reference in New Issue