diff --git a/vlib/builtin/array_d_gcboehm_opt.v b/vlib/builtin/array_d_gcboehm_opt.v index 56902cf517..d9981528d3 100644 --- a/vlib/builtin/array_d_gcboehm_opt.v +++ b/vlib/builtin/array_d_gcboehm_opt.v @@ -255,7 +255,7 @@ fn (mut a array) push_noscan(val voidptr) { // push_many implements the functionality for pushing another array. // `val` is array.data and user facing usage is `a << [1,2,3]` @[unsafe] -fn (mut a3 array) push_many_noscan(val voidptr, size int) { +pub fn (mut a3 array) push_many_noscan(val voidptr, size int) { if size <= 0 || val == unsafe { nil } { return } diff --git a/vlib/strings/builder.c.v b/vlib/strings/builder.c.v index ef3823aa79..f7403ca913 100644 --- a/vlib/strings/builder.c.v +++ b/vlib/strings/builder.c.v @@ -134,7 +134,11 @@ pub fn (mut b Builder) write_string(s string) { if s.len == 0 { return } - unsafe { b.push_many(s.str, s.len) } + $if gcboehm ? { + unsafe { b.push_many_noscan(s.str, s.len) } + } $else { + unsafe { b.push_many(s.str, s.len) } + } // for c in s { // b.buf << c // }