diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/array.c (renamed from src/vector.c) | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/vector.c b/src/array.c index 2d4db17..2920320 100644 --- a/src/vector.c +++ b/src/array.c @@ -1,4 +1,4 @@ -#include "vector.h" +#include "array.h" #include "utility.h" #include <stdlib.h> @@ -18,7 +18,7 @@ typedef struct{ #define getTotal(X) getTotal2((X)->mem_count,(X)->size) /********************** initalize *************************/ -pvoid ctl_vector_initX(ppvoid v, size_t size, uint count){ +pvoid ctl_array_initX(ppvoid v, size_t size, uint count){ VectorHeader *tmp; int mem = 0; @@ -37,27 +37,27 @@ pvoid ctl_vector_initX(ppvoid v, size_t size, uint count){ } /******************** destructure *************************/ -pvoid ctl_vector_freeX(ppvoid v){ +pvoid ctl_array_freeX(ppvoid v){ free(pVoid(getHeader(*v))); *v = NULL; return NULL; } /******************** methods about get??? ****************/ -int ctl_vector_getSizeX(ppvoid v){ +int ctl_array_getSizeX(ppvoid v){ return getHeader(*v)->use_count; } -pcvoid ctl_vector_getEntryX(ppvoid v, uint index){ +pcvoid ctl_array_getEntryX(ppvoid v, uint index){ return pcVoid(pChar(*v) + getHeader(*v)->size * index); } -int ctl_vector_getEntrySizeX(ppvoid v){ +int ctl_array_getEntrySizeX(ppvoid v){ return getHeader(*v)->size; } /******************** methods about set??? ****************/ -int ctl_vector_setSizeX(ppvoid v, uint count){ +int ctl_array_setSizeX(ppvoid v, uint count){ VectorHeader *tmp = getHeader(*v); int mem = 0; @@ -71,13 +71,13 @@ int ctl_vector_setSizeX(ppvoid v, uint count){ return tmp->use_count; } -pvoid ctl_vector_setEntryX(ppvoid v, uint index, pcvoid data){ +pvoid ctl_array_setEntryX(ppvoid v, uint index, pcvoid data){ VectorHeader *tmp = getHeader(*v); memcpy(pVoid(tmp->buf + index * tmp->size), data, tmp->size); } /************** add/del element on the back ***************/ -int ctl_vector_addBackX(ppvoid v, pcvoid entry){ +int ctl_array_addBackX(ppvoid v, pcvoid entry){ VectorHeader *tmp = getHeader(*v); if(tmp->use_count + 1 > tmp->mem_count){ @@ -90,7 +90,7 @@ int ctl_vector_addBackX(ppvoid v, pcvoid entry){ tmp->use_count++; return tmp->use_count; } -int ctl_vector_delBackX(ppvoid v){ +int ctl_array_delBackX(ppvoid v){ VectorHeader *tmp = getHeader(*v); if((tmp->use_count - 1) * 2 < tmp->mem_count){ @@ -102,31 +102,31 @@ int ctl_vector_delBackX(ppvoid v){ tmp->use_count--; return tmp->use_count; } -//int ctl_vector_addFrontX(ppvoid v, pcvoid entry); -//int ctl_vector_delFrontX(ppvoid v); +//int ctl_array_addFrontX(ppvoid v, pcvoid entry); +//int ctl_array_delFrontX(ppvoid v); -int ctl_vector_catX(ppvoid v, ppcvoid v2){ +int ctl_array_catX(ppvoid v, ppcvoid v2){ int count0 = getHeader(*v)->use_count; int count2 = getHeader(*v2)->use_count; - ctl_vector_setSize(v, count0 + count2); + ctl_array_setSize(v, count0 + count2); int i; for(i = 0; i < count2; i++) - ctl_vector_setEntry(v, count0 + i, ctl_vector_getEntry(v2, i)); + ctl_array_setEntry(v, count0 + i, ctl_array_getEntry(v2, i)); return count0 + count2; } -pvoid ctl_vector_copyX(ppvoid v, ppcvoid v2){ +pvoid ctl_array_copyX(ppvoid v, ppcvoid v2){ VectorHeader* tmp = getHeader(*v2); VectorHeader* p = (VectorHeader*)malloc(getTotal(tmp)); memcpy(pVoid(p), pVoid(tmp), getTotal(tmp)); if(v != NULL){ if(*v != NULL){ - ctl_vector_free(v); + ctl_array_free(v); } *v = p->buf; } return p->buf; } -int ctl_vector_replaceX( ppvoid v , uint start1, uint length1, +int ctl_array_replaceX( ppvoid v , uint start1, uint length1, ppcvoid v2, uint start2, int length2){ int end1 = (int)start1 + length1 - 1; int end2 = (int)start2 + abs(length2) - 1, step2 = 1; @@ -136,23 +136,23 @@ int ctl_vector_replaceX( ppvoid v , uint start1, uint length1, ctl_swap(int, start2, end2); } if (length1 < length2){ // need increase size - int sz0 = ctl_vector_getSize(v); + int sz0 = ctl_array_getSize(v); int delta = length2 - length1; - ctl_vector_setSize(v, sz0 + delta); + ctl_array_setSize(v, sz0 + delta); int i; for(i = sz0 + delta - 1; i - delta > end1; i--){ - ctl_vector_setEntry(v, i, ctl_vector_getEntry(v, i - delta)); + ctl_array_setEntry(v, i, ctl_array_getEntry(v, i - delta)); } }else if(length1 > length2){ // need decrease size - int sz0 = ctl_vector_getSize(v); + int sz0 = ctl_array_getSize(v); int delta = length1 - length2; int i; for(i = end1 - delta + 1; i + delta < sz0; i++){ - ctl_vector_setEntry(v, i, ctl_vector_getEntry(v, i + delta)); + ctl_array_setEntry(v, i, ctl_array_getEntry(v, i + delta)); } - ctl_vector_setSize(v, sz0 - delta); + ctl_array_setSize(v, sz0 - delta); } for(end2 += step2; start2 != end2; start2 += step2, start1 += 1){ - ctl_vector_setEntry(v, start1, ctl_vector_getEntry(v2, start2)); + ctl_array_setEntry(v, start1, ctl_array_getEntry(v2, start2)); } } |