Home | History | Annotate | Download | only in toolutil

Lines Matching defs:mem

162     UToolMemory *mem;
168 mem=(UToolMemory *)uprv_malloc(sizeof(UToolMemory)+initialCapacity*size);
169 if(mem==NULL) {
173 mem->array=mem->staticArray;
175 uprv_strcpy(mem->name, name);
176 mem->capacity=initialCapacity;
177 mem->maxCapacity=maxCapacity;
178 mem->size=size;
179 mem->idx=0;
180 return mem;
184 utm_close(UToolMemory *mem) {
185 if(mem!=NULL) {
186 if(mem->array!=mem->staticArray) {
187 uprv_free(mem->array);
189 uprv_free(mem);
195 utm_getStart(UToolMemory *mem) {
196 return (char *)mem->array;
200 utm_countItems(UToolMemory *mem) {
201 return mem->idx;
206 utm_hasCapacity(UToolMemory *mem, int32_t capacity) {
207 if(mem->capacity<capacity) {
210 if(mem->maxCapacity<capacity) {
212 mem->name, (long)mem->maxCapacity);
217 if(capacity>=2*mem->capacity) {
219 } else if(mem->capacity<=mem->maxCapacity/3) {
220 newCapacity=2*mem->capacity;
222 newCapacity=mem->maxCapacity;
225 if(mem->array==mem->staticArray) {
226 mem->array=uprv_malloc(newCapacity*mem->size);
227 if(mem->array!=NULL) {
228 uprv_memcpy(mem->array, mem->staticArray, mem->idx*mem->size);
231 mem->array=uprv_realloc(mem->array, newCapacity*mem->size);
234 if(mem->array==NULL) {
235 fprintf(stderr, "error: %s - out of memory\n", mem->name);
244 utm_alloc(UToolMemory *mem) {
245 char *p=(char *)mem->array+mem->idx*mem->size;
246 int32_t newIndex=mem->idx+1;
247 if(utm_hasCapacity(mem, newIndex)) {
248 mem->idx=newIndex;
249 uprv_memset(p, 0, mem->size);
255 utm_allocN(UToolMemory *mem, int32_t n) {
256 char *p=(char *)mem->array+mem->idx*mem->size;
257 int32_t newIndex=mem->idx+n;
258 if(utm_hasCapacity(mem, newIndex)) {
259 mem->idx=newIndex;
260 uprv_memset(p, 0, n*mem->size);