src/list.c

changeset 1319
aa1f580f8f59
parent 1318
12fa1d37fe48
equal deleted inserted replaced
1318:12fa1d37fe48 1319:aa1f580f8f59
352 } 352 }
353 353
354 void cx_list_default_sort(struct cx_list_s *list) { 354 void cx_list_default_sort(struct cx_list_s *list) {
355 size_t elem_size = list->collection.elem_size; 355 size_t elem_size = list->collection.elem_size;
356 size_t list_size = list->collection.size; 356 size_t list_size = list->collection.size;
357 void *tmp = cxMalloc(cxDefaultAllocator, elem_size * list_size); 357 void *tmp = cxMallocDefault(elem_size * list_size);
358 if (tmp == NULL) abort(); 358 if (tmp == NULL) abort();
359 359
360 // copy elements from source array 360 // copy elements from source array
361 char *loc = tmp; 361 char *loc = tmp;
362 for (size_t i = 0; i < list_size; i++) { 362 for (size_t i = 0; i < list_size; i++) {
375 void *dest = invoke_list_func(at, list, i); 375 void *dest = invoke_list_func(at, list, i);
376 memcpy(dest, loc, elem_size); 376 memcpy(dest, loc, elem_size);
377 loc += elem_size; 377 loc += elem_size;
378 } 378 }
379 379
380 cxFree(cxDefaultAllocator, tmp); 380 cxFreeDefault(tmp);
381 } 381 }
382 382
383 int cx_list_default_swap(struct cx_list_s *list, size_t i, size_t j) { 383 int cx_list_default_swap(struct cx_list_s *list, size_t i, size_t j) {
384 if (i == j) return 0; 384 if (i == j) return 0;
385 if (i >= list->collection.size) return 1; 385 if (i >= list->collection.size) return 1;
386 if (j >= list->collection.size) return 1; 386 if (j >= list->collection.size) return 1;
387 387
388 size_t elem_size = list->collection.elem_size; 388 size_t elem_size = list->collection.elem_size;
389 389
390 void *tmp = cxMalloc(cxDefaultAllocator, elem_size); 390 void *tmp = cxMallocDefault(elem_size);
391 if (tmp == NULL) return 1; 391 if (tmp == NULL) return 1;
392 392
393 void *ip = invoke_list_func(at, list, i); 393 void *ip = invoke_list_func(at, list, i);
394 void *jp = invoke_list_func(at, list, j); 394 void *jp = invoke_list_func(at, list, j);
395 395
396 memcpy(tmp, ip, elem_size); 396 memcpy(tmp, ip, elem_size);
397 memcpy(ip, jp, elem_size); 397 memcpy(ip, jp, elem_size);
398 memcpy(jp, tmp, elem_size); 398 memcpy(jp, tmp, elem_size);
399 399
400 cxFree(cxDefaultAllocator, tmp); 400 cxFreeDefault(tmp);
401 401
402 return 0; 402 return 0;
403 } 403 }
404 404
405 void cx_list_init( 405 void cx_list_init(

mercurial