diff options
author | cathook <cat.hook31894@gmail.com> | 2013-11-26 00:05:34 +0800 |
---|---|---|
committer | cathook <cat.hook31894@gmail.com> | 2013-11-26 02:41:11 +0800 |
commit | e59edaee63c1b4a955cc07bc6c2b9c5e7e830790 (patch) | |
tree | 839b490bcedb6b8e6a108f82831a73478892c63b | |
parent | c88ab16511df6eef6f7017a39e1a48deed6bd1f3 (diff) | |
download | ctl-e59edaee63c1b4a955cc07bc6c2b9c5e7e830790.tar.gz ctl-e59edaee63c1b4a955cc07bc6c2b9c5e7e830790.tar.zst ctl-e59edaee63c1b4a955cc07bc6c2b9c5e7e830790.zip |
---
-rw-r--r-- | src/vector.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/vector.c b/src/vector.c index e47ccd5..7203867 100644 --- a/src/vector.c +++ b/src/vector.c @@ -13,7 +13,7 @@ typedef struct{ char buf[]; } VectorHeader; -#define getHeader(X) ((VectorHeader*)(pChar(X)-sizeof(VectorHeader)) +#define getHeader(X) ((VectorHeader*)(pChar(X)-sizeof(VectorHeader))) #define getTotal2(X,Y) ((Y)*(X)+sizeof(VectorHeader)) #define getTotal(X) getTotal2((X)->mem_count,(X)->size) @@ -22,13 +22,13 @@ pvoid ctl_vector_initX(ppvoid v, size_t size, uint count){ VectorHeader *tmp; int mem = 0; - if(init_count >= 1) - for(mem = 1; mem < init_count; mem *= 2); + if(count >= 1) + for(mem = 1; mem < count; mem *= 2); tmp = (VectorHeader*)ctl_malloc(getTotal2(mem, size)); tmp->size = size; - tmp->use_count = init_count; + tmp->use_count = count; tmp->mem_count = mem; if(v != NULL){ *v = pVoid(tmp->buf); @@ -48,7 +48,7 @@ int ctl_vector_getSizeX(ppvoid v){ return getHeader(*v)->use_count; } -pcvoid ctl_vector_getEntryX(ppvoid v, uint index); +pcvoid ctl_vector_getEntryX(ppvoid v, uint index){ return pcVoid(pChar(*v) + getHeader(*v)->size * index); } @@ -73,7 +73,7 @@ int ctl_vector_setSizeX(ppvoid v, uint count){ } pvoid ctl_vector_setEntryX(ppvoid v, uint index, pcvoid data){ VectorHeader *tmp = getHeader(*v); - memcpy(pVoid(v->buf + index * tmp->size), data, tmp->size); + memcpy(pVoid(tmp->buf + index * tmp->size), data, tmp->size); } /************** add/del element on the back ***************/ @@ -86,7 +86,7 @@ int ctl_vector_addBackX(ppvoid v, pcvoid entry){ tmp = (VectorHeader*)realloc(pVoid(tmp), getTotal(tmp)); *v = pVoid(tmp->buf); } - memcpy(v->buf + tmp->size * tmp->use_count, entry, tmp->size); + memcpy(tmp->buf + tmp->size * tmp->use_count, entry, tmp->size); tmp->use_count++; return tmp->use_count; } @@ -95,8 +95,8 @@ int ctl_vector_delBackX(ppvoid v){ if((tmp->use_count - 1) * 2 < tmp->mem_count){ tmp->mem_count /= 2; - tmp = (VectorHeader*)realloc(pVOID(tmp), getTotal(tmp)); - *v = pVOID(tmp->buf); + tmp = (VectorHeader*)realloc(pVoid(tmp), getTotal(tmp)); + *v = pVoid(tmp->buf); } tmp->use_count--; @@ -116,16 +116,16 @@ int ctl_vector_catX(ppvoid v, ppcvoid v2){ } pvoid ctl_vector_copyX(ppvoid v, ppcvoid v2){ VectorHeader *tmp = getHeader(*v2); - pvoid *p = malloc(getTotal(*v2)); - memcpy(p, *v2, getTotal(*v2)); + pvoid p = malloc(getTotal(tmp)); + memcpy(p, tmp, getTotal(tmp)); if(*v != NULL){ ctl_vector_free(v); *v = p; } return p; } -int ctl_vector_replaceX( ppvoid v , uint start1, uint length1 - ppcvoid v2, uint start2, int length2){ +int ctl_vector_replaceX( ppvoid v , uint start1, uint length1, + ppcvoid v2, uint start2, int length2){ int end1 = start1 + length1 - 1; int end2 = start2 + abs(length2) - 1, step2 = 1; if(length2 < 0){ |