diff --git a/core/sys/windows/util.odin b/core/sys/windows/util.odin index 184a8c2e3..fc2b61033 100644 --- a/core/sys/windows/util.odin +++ b/core/sys/windows/util.odin @@ -465,7 +465,7 @@ get_computer_name_and_account_sid :: proc(username: string) -> (computer_name: s return "", {}, false } - cname_w := make([]u16, computer_name_size context.temp_allocator) + cname_w := make([]u16, computer_name_size, context.temp_allocator) res = LookupAccountNameW( nil, diff --git a/core/unicode/utf16/utf16.odin b/core/unicode/utf16/utf16.odin index edd48e0f3..7396cb9e8 100644 --- a/core/unicode/utf16/utf16.odin +++ b/core/unicode/utf16/utf16.odin @@ -39,19 +39,19 @@ encode :: proc "contextless" (d: []u16, s: []rune) -> int { loop: for r in s { switch r { case 0..<_surr1, _surr3 ..< _surr_self: - if m+1 < n { break loop } + if n >= m { break loop } d[n] = u16(r) n += 1 case _surr_self ..= MAX_RUNE: - if m+2 < n { break loop } + if n+1 >= m { break loop } r1, r2 := encode_surrogate_pair(r) d[n] = u16(r1) d[n+1] = u16(r2) n += 2 case: - if m+1 < n { break loop } + if n >= m { break loop } d[n] = u16(REPLACEMENT_CHAR) n += 1 } @@ -65,19 +65,19 @@ encode_string :: proc "contextless" (d: []u16, s: string) -> int { loop: for r in s { switch r { case 0..<_surr1, _surr3 ..< _surr_self: - if m+1 < n { break loop } + if n >= m { break loop } d[n] = u16(r) n += 1 case _surr_self ..= MAX_RUNE: - if m+2 < n { break loop } + if n+1 >= m { break loop } r1, r2 := encode_surrogate_pair(r) d[n] = u16(r1) d[n+1] = u16(r2) n += 2 case: - if m+1 < n { break loop } + if n >= m { break loop } d[n] = u16(REPLACEMENT_CHAR) n += 1 }