ucx/buffer.c

changeset 67
27e67e725d35
parent 64
16590c9c497c
child 69
fb59270b1de3
equal deleted inserted replaced
66:fcfe8c5e9fe1 67:27e67e725d35
31 free(buffer->space); 31 free(buffer->space);
32 } 32 }
33 free(buffer); 33 free(buffer);
34 } 34 }
35 35
36 UcxBuffer *ucx_buffer_extract( 36 UcxBuffer *restrict ucx_buffer_extract(
37 UcxBuffer *src, size_t start, size_t length, int flags) { 37 UcxBuffer *restrict src, size_t start, size_t length, int flags) {
38 if (length == 0) { 38 if (length == 0) {
39 length = src->size - start; 39 length = src->size - start;
40 } 40 }
41 if (start+length > src->size) { 41 if (start+length > src->size) {
42 return NULL; 42 return NULL;
43 } 43 }
44 44
45 UcxBuffer *dst = (UcxBuffer*) malloc(sizeof(UcxBuffer)); 45 UcxBuffer *restrict dst = (UcxBuffer*) malloc(sizeof(UcxBuffer));
46 if (dst) { 46 if (dst) {
47 dst->space = malloc(length); 47 dst->space = malloc(length);
48 if (!dst->space) { 48 if (!dst->space) {
49 free(dst); 49 free(dst);
50 return NULL; 50 return NULL;

mercurial