From fb0d2e0cb6603df3ebdd7f609b2cc8985e42a780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Caselhos?= <102961545+Caselhos@users.noreply.github.com> Date: Sat, 3 Aug 2024 12:33:15 +0100 Subject: [PATCH] refactor stumpless_get_prival_string Removes a call to snprintf, replacing it with faster memcpy calls. --- src/prival.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/prival.c b/src/prival.c index 4f36ce85..f5b39ba3 100644 --- a/src/prival.c +++ b/src/prival.c @@ -43,13 +43,19 @@ stumpless_get_prival_string( int prival ) { severity = stumpless_get_severity_string( get_severity( prival ) ); facility = stumpless_get_facility_string( get_facility( prival ) ); + + size_t len_severity = strlen(severity); // to not call strlen() mutiples times, unsure about impact + size_t len_facility = strlen(facility); // +3 for formatting, +1 for termination - prival_string_size = ( strlen( severity ) + strlen( facility ) + 4); + prival_string_size = ( len_severity + len_facility + 4); prival_string = alloc_mem( prival_string_size ); - - snprintf( prival_string, prival_string_size, "%s | %s", severity, facility ); - + + memcpy( prival_string, severity , len_severity); + memcpy( prival_string + len_severity, " | ", 3); // 3 is the size of " | " + memcpy( prival_string + len_severity + 3, facility, len_facility); + memcpy( prival_string + len_severity + 3 + len_facility, "\0", 1); + return prival_string; }