From 12d8f173a412d0bdbd30bf18d4f59b94ae16c200 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Thu, 16 Jan 2025 17:16:09 +0200 Subject: [PATCH] builtin: reduce a bit the generated #if defined checks for small programs (#23484) --- vlib/builtin/builtin.c.v | 22 ++++++++++------------ vlib/builtin/utf8.c.v | 4 +--- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/vlib/builtin/builtin.c.v b/vlib/builtin/builtin.c.v index 32db56a05c2caf..f876518743bb66 100644 --- a/vlib/builtin/builtin.c.v +++ b/vlib/builtin/builtin.c.v @@ -346,21 +346,19 @@ pub fn println(s string) { @[manualfree] fn _writeln_to_fd(fd int, s string) { - $if !builtin_writeln_should_write_at_once ? { + $if builtin_writeln_should_write_at_once ? { + unsafe { + buf_len := s.len + 1 // space for \n + mut buf := malloc(buf_len) + C.memcpy(buf, s.str, s.len) + buf[s.len] = `\n` + _write_buf_to_fd(fd, buf, buf_len) + free(buf) + } + } $else { lf := u8(`\n`) _write_buf_to_fd(fd, s.str, s.len) _write_buf_to_fd(fd, &lf, 1) - return - } - unsafe { - buf_len := s.len + 1 // space for \n - mut buf := malloc(buf_len) - defer { - free(buf) - } - C.memcpy(buf, s.str, s.len) - buf[s.len] = `\n` - _write_buf_to_fd(fd, buf, buf_len) } } diff --git a/vlib/builtin/utf8.c.v b/vlib/builtin/utf8.c.v index 687ff62cc13896..3c92f570a75a53 100644 --- a/vlib/builtin/utf8.c.v +++ b/vlib/builtin/utf8.c.v @@ -82,14 +82,12 @@ pub fn string_from_wide2(_wstr &u16, len int) string { } } $else { mut sb := strings.new_builder(len) - defer { - unsafe { sb.free() } - } for i := 0; i < len; i++ { u := unsafe { rune(_wstr[i]) } sb.write_rune(u) } res := sb.str() + unsafe { sb.free() } return res } }