178 } |
179 } |
179 |
180 |
180 sstr_t sstrdup(sstr_t s) { |
181 sstr_t sstrdup(sstr_t s) { |
181 sstr_t newstring; |
182 sstr_t newstring; |
182 newstring.ptr = (char*) malloc(s.length + 1); |
183 newstring.ptr = (char*) malloc(s.length + 1); |
183 newstring.length = 0; |
|
184 if (newstring.ptr) { |
184 if (newstring.ptr) { |
185 newstring.length = s.length; |
185 newstring.length = s.length; |
186 newstring.ptr[newstring.length] = 0; |
186 newstring.ptr[newstring.length] = 0; |
187 |
187 |
188 memcpy(newstring.ptr, s.ptr, s.length); |
188 memcpy(newstring.ptr, s.ptr, s.length); |
189 } else { |
189 } else { |
190 newstring.length = 0; |
190 newstring.length = 0; |
191 } |
191 } |
192 |
192 |
|
193 return newstring; |
|
194 } |
|
195 |
|
196 sstr_t sstrdup_alloc(UcxAllocator *allocator, sstr_t s) { |
|
197 sstr_t newstring; |
|
198 newstring.ptr = (char*)allocator->malloc(allocator->pool, s.length + 1); |
|
199 if (newstring.ptr) { |
|
200 newstring.length = s.length; |
|
201 newstring.ptr[newstring.length] = 0; |
|
202 |
|
203 memcpy(newstring.ptr, s.ptr, s.length); |
|
204 } else { |
|
205 newstring.length = 0; |
|
206 } |
|
207 |
193 return newstring; |
208 return newstring; |
194 } |
209 } |
195 |
210 |
196 sstr_t sstrtrim(sstr_t string) { |
211 sstr_t sstrtrim(sstr_t string) { |
197 sstr_t newstr = string; |
212 sstr_t newstr = string; |