From: Michael Tremer Date: Sun, 26 Jan 2025 15:46:49 +0000 (+0000) Subject: log buffer: Make the dequeue operation zero-copy X-Git-Tag: 0.9.30~369 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2db7e4a451aad55672e405de0e347238572be350;p=pakfire.git log buffer: Make the dequeue operation zero-copy Since we already have a copy of the data which will no longer need, we can keep our internal pointer and just skip freeing it. Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/log_buffer.c b/src/pakfire/log_buffer.c index 91de1553..0e592f52 100644 --- a/src/pakfire/log_buffer.c +++ b/src/pakfire/log_buffer.c @@ -168,9 +168,10 @@ int pakfire_log_buffer_dequeue(struct pakfire_log_buffer* buffer, int* priority, *priority = l->priority; // Return the line - *line = strndup(l->line, l->length); - if (!*line) - return -errno; + *line = l->line; + + // Reset so we won't free the buffer + l->line = NULL; // Return the length if (length)