"README.md" did not exist on "6aa460f81d6e371657a6a27e4245b9a4be71cfd5"
Newer
Older
if (__builtin_expect(needed > mgr->space, 0)) {
size_t new_size = mgr->size * 2;
new_size *= 2;
if (add_string_pool(mgr, new_size))
return NULL;
}
result = mgr->pool->base + mgr->used;
mgr->used += needed;
mgr->space -= needed;
return result;
}
Kevin P. Fleming
committed
void __ast_string_field_index_build(struct ast_string_field_mgr *mgr,
Kevin P. Fleming
committed
ast_string_field *fields, int num_fields,
int index, const char *format, ...)
{
size_t needed;
va_list ap1, ap2;
va_start(ap1, format);
va_copy(ap2, ap1);
needed = vsnprintf(mgr->pool->base + mgr->used, mgr->space, format, ap1) + 1;
Kevin P. Fleming
committed
va_end(ap1);
if (needed > mgr->space) {
size_t new_size = mgr->size * 2;
while (new_size < needed)
new_size *= 2;
if (add_string_pool(mgr, new_size))
return;
vsprintf(mgr->pool->base + mgr->used, format, ap2);
}
fields[index] = mgr->pool->base + mgr->used;
mgr->used += needed;
mgr->space -= needed;
Kevin P. Fleming
committed
va_end(ap2);
}
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
/*
* get values from config variables.
*/
int ast_get_time_t(const char *src, time_t *dst, time_t _default)
{
long t;
if (dst == NULL)
return -1;
*dst = _default;
if (ast_strlen_zero(src))
return -1;
/* only integer at the moment, but one day we could accept more formats */
if (sscanf(src, "%ld", &t) == 1) {
*dst = t;
return 0;
} else
return -1;
}