blob: 56ab04132b6c61ad78e7ceb1e6fc6b4dd508252a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#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
str·fit(string *s)
{
Hdr* h;
vlong cap = str·cap(*s);
vlong len = str·len(*s);
if (cap == len) return;
h = (Hdr*)(s - sizeof(Hdr));
h = realloc(h, sizeof(*h) + len + 1);
h->cap = len;
*s = h->buf;
}
|