コード例 #1
0
ファイル: chunk.c プロジェクト: 5bruce/sbase
/* set/initialize chunk mem */
int chunk_mem(void *chunk, int len)
{
    int n = 0, size = 0, need = len+1;

    if(chunk && len > 0)
    {
        if(need > CHK(chunk)->bsize)
        {
            n = need/CHUNK_BLOCK_SIZE;
            if(need % CHUNK_BLOCK_SIZE) ++n;
            size = n * CHUNK_BLOCK_SIZE;
            CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size);
            if(CHK(chunk)->data) CHK(chunk)->bsize = size;
            else CHK(chunk)->bsize = 0;
        }
        //if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize);
        if(CHK(chunk)->data)
        {
            CHK(chunk)->type = CHUNK_MEM;
            CHK(chunk)->status = CHUNK_STATUS_ON;
            CHK(chunk)->size = CHK(chunk)->left = len;
            CHK(chunk)->end = CHK(chunk)->data;
            CHK(chunk)->data[len] = 0;
            CHK(chunk)->ndata = 0;
        }
        return 0;
    }
    return -1;
}
コード例 #2
0
ファイル: chunk.c プロジェクト: houweifeng/sbase
/* set/initialize chunk mem */
int chunk_mem(void *chunk, int len)
{
    int n = 0, size = 0;

    if(chunk)
    {
        if(len > CHK(chunk)->bsize)
        {
            n = len/CHUNK_BLOCK_SIZE;
            if(len % CHUNK_BLOCK_SIZE) ++n;
            size = n * CHUNK_BLOCK_SIZE;
            CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size);
            if(CHK(chunk)->data) CHK(chunk)->bsize = size;
            else CHK(chunk)->bsize = 0;
        }
        if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize);
        CHK(chunk)->type = CHUNK_MEM;
        CHK(chunk)->status = CHUNK_STATUS_ON;
        CHK(chunk)->size = CHK(chunk)->left = len;
        CHK(chunk)->end = CHK(chunk)->data;
        CHK(chunk)->ndata = 0;
        return 0;
    }
    return -1;
}
コード例 #3
0
ファイル: chunk.c プロジェクト: 5bruce/sbase
/* set/initialize chunk mem */
int chunk_set_bsize(void *chunk, int len)
{
    int n = 0, size = 0;

    if(chunk)
    {
        if(len > CHK(chunk)->bsize)
        {
            n = len / CHUNK_BLOCK_SIZE;
            if(len % CHUNK_BLOCK_SIZE) ++n;
            size = n * CHUNK_BLOCK_SIZE;
            CHK(chunk)->data = (char *)xmm_renew(CHK(chunk)->data, CHK(chunk)->bsize, size);
            if(CHK(chunk)->data) CHK(chunk)->bsize = size;
            else CHK(chunk)->bsize = 0;
        }
        //if(CHK(chunk)->data) memset(CHK(chunk)->data, 0, CHK(chunk)->bsize);
        CHK(chunk)->end = CHK(chunk)->data;
        CHK(chunk)->ndata = 0;
        return 0;
    }
    return -1;
}