Example #1
0
int32 String::checkToClearAndAlloc(int32 nNewLength)
{
    if (getRefCount() <= 1)
    {
        internalAlloc(nNewLength);
    }
    else
    {
        release();
        
        internalAlloc(nNewLength);
    }
    
    return nNewLength;
}
Example #2
0
int32 String::checkToCopyAndAlloc(int32 nNewLength)
{
    if (getRefCount() <= 1)
    {
        internalAlloc(nNewLength);
    }
    else
    {
        XCHAR * pStrOld = m_pString;
        int32 nOldLength = getLength();
        
        release();
        
        internalAlloc(nNewLength);
        xMemoryCopy(m_pString, pStrOld, sizeof(XCHAR)*nOldLength);
    }
    
    return nNewLength;
}
Example #3
0
File: mymem.c Project: turu/sysopy
void * mylloc(size_t requestedSize) {
    if (!_initialized || requestedSize > _totalFreeSize)
        return NULL;

    if (requestedSize > _maxFreeSize)
        defragmentDescriptorList(&_freeList, &_minFreeSize, &_maxFreeSize, &_freeCount);

    if (requestedSize > _maxFreeSize)
        return NULL;

    //printf("About to enter internalAlloc\n");
    MyDescriptor * ret = internalAlloc(requestedSize, &_freeList, &_usedList, &_usedCount, &_freeCount);

    //printf("Allocated chunk: blocks=%d, ptr=%d\n", ret->blockCount, ret->memory);

    _totalFreeSize -= requestedSize;

    return ret->memory;
}