blob: 23d4200bc23757e0696159f8e4eb3714a9daa531 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include "internal.h"
// fit reallocates the string such that the buffer is exactly sized for the
// buffer. if the capacity equals the length, then the function is a noop. the
// byte array is unchanged.
void
string·fit(string *s)
{
Hdr* h;
vlong cap = string·cap(*s);
vlong len = string·len(*s);
if(cap == len)
return;
h = (Hdr*)(s - sizeof(Hdr));
h = realloc(h, sizeof(*h) + len + 1);
h->cap = len;
*s = h->buf;
}
|