- /* The static buffer was too small, use a dynamically expanded one */
- ev->buffer_size = XBT_LOG_DYNAMIC_BUFFER_SIZE;
- ev->buffer = xbt_malloc(ev->buffer_size);
- while (1) {
- va_start(ev->ap, fmt);
- int done = cat->layout->do_layout(cat->layout, ev, fmt);
- va_end(ev->ap);
- if (done)
- break; /* Got it */
- ev->buffer_size *= 2;
- ev->buffer = xbt_realloc(ev->buffer, ev->buffer_size);
- }
- appender->do_append(appender, ev->buffer);
- xbt_free(ev->buffer);
-
- } while (cat->additivity && (cat = cat->parent, 1));