118 n.length = 0; |
118 n.length = 0; |
119 return n; |
119 return n; |
120 } |
120 } |
121 |
121 |
122 sstr_t* sstrsplit(sstr_t s, sstr_t d, size_t *n) { |
122 sstr_t* sstrsplit(sstr_t s, sstr_t d, size_t *n) { |
123 return sstrsplita(s, d, n, ucx_default_allocator()); |
123 return sstrsplit_a(ucx_default_allocator(), s, d, n); |
124 } |
124 } |
125 |
125 |
126 sstr_t* sstrsplita(sstr_t s, sstr_t d, size_t *n, UcxAllocator *allocator) { |
126 sstr_t* sstrsplit_a(UcxAllocator *allocator, sstr_t s, sstr_t d, size_t *n) { |
127 if (s.length == 0 || d.length == 0) { |
127 if (s.length == 0 || d.length == 0) { |
128 *n = -1; |
128 *n = -1; |
129 return NULL; |
129 return NULL; |
130 } |
130 } |
131 |
131 |
196 return -1; |
196 return -1; |
197 } |
197 } |
198 } |
198 } |
199 |
199 |
200 sstr_t sstrdup(sstr_t s) { |
200 sstr_t sstrdup(sstr_t s) { |
201 return sstrdupa(ucx_default_allocator(), s); |
201 return sstrdup_a(ucx_default_allocator(), s); |
202 } |
202 } |
203 |
203 |
204 sstr_t sstrdupa(UcxAllocator *allocator, sstr_t s) { |
204 sstr_t sstrdup_a(UcxAllocator *allocator, sstr_t s) { |
205 sstr_t newstring; |
205 sstr_t newstring; |
206 newstring.ptr = (char*)allocator->malloc(allocator->pool, s.length + 1); |
206 newstring.ptr = (char*)allocator->malloc(allocator->pool, s.length + 1); |
207 if (newstring.ptr) { |
207 if (newstring.ptr) { |
208 newstring.length = s.length; |
208 newstring.length = s.length; |
209 newstring.ptr[newstring.length] = 0; |
209 newstring.ptr[newstring.length] = 0; |