static int32_t upb_stringsink_vprintf(void *_s, const char *fmt, va_list args) { // TODO: detect realloc() errors. upb_stringsink *s = _s; int ret = upb_vrprintf(&s->str, &s->size, s->len, fmt, args); if (ret >= 0) s->len += ret; return ret; }
void upb_status_seterrf(upb_status *s, const char *msg, ...) { s->code = UPB_ERROR; va_list args; va_start(args, msg); upb_vrprintf(&s->buf, &s->bufsize, 0, msg, args); va_end(args); s->str = s->buf; }