| 198 | } |
| 199 | |
| 200 | String::Buffer String::getBuffer() |
| 201 | { |
| 202 | String::Buffer buf; |
| 203 | if(sso.set) { |
| 204 | buf.size = sso.len + 1; |
| 205 | buf.length = sso.len; |
| 206 | buf.data = static_cast<char*>(malloc(buf.size)); |
| 207 | memcpy(buf.data, sso.buffer, sso.len); |
| 208 | buf.data[sso.len] = '\0'; |
| 209 | } else { |
| 210 | buf.data = ptr.buffer; |
| 211 | buf.size = ptr.capacity + 1; |
| 212 | buf.length = ptr.len; |
| 213 | } |
| 214 | sso.set = false; |
| 215 | ptr.buffer = nullptr; |
| 216 | ptr.capacity = 0; |
| 217 | ptr.len = 0; |
| 218 | |
| 219 | return buf; |
| 220 | } |
| 221 | |
| 222 | bool String::setBuffer(const Buffer& buffer) |
| 223 | { |
no test coverage detected