MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

minor server.c perf tweaks

+8 -7
+8 -7
src/http/http1_writer.c
··· 49 49 #pragma GCC diagnostic ignored "-Wformat-nonliteral" 50 50 51 51 bool ant_http1_buffer_appendfv(ant_http1_buffer_t *buf, const char *fmt, va_list ap) { 52 + char stack[256]; 52 53 va_list ap_copy; 53 54 int written; 54 55 55 56 if (!buf || buf->failed) return false; 56 57 57 58 va_copy(ap_copy, ap); 58 - written = vsnprintf(NULL, 0, fmt, ap_copy); 59 + written = vsnprintf(stack, sizeof(stack), fmt, ap_copy); 59 60 va_end(ap_copy); 61 + 60 62 if (written < 0) { 61 63 buf->failed = true; 62 64 return false; 63 65 } 64 66 65 - if (!ant_http1_buffer_reserve(buf, (size_t)written)) return false; 66 - written = vsnprintf(buf->data + buf->len, buf->cap - buf->len, fmt, ap); 67 - if (written < 0) { 68 - buf->failed = true; 69 - return false; 70 - } 67 + if ((size_t)written < sizeof(stack)) 68 + return ant_http1_buffer_append(buf, stack, (size_t)written); 71 69 70 + if (!ant_http1_buffer_reserve(buf, (size_t)written + 1)) return false; 71 + vsnprintf(buf->data + buf->len, buf->cap - buf->len, fmt, ap); 72 72 buf->len += (size_t)written; 73 + 73 74 return true; 74 75 } 75 76