neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 7feed6ccb7ddfa3bc789158a3b7874d12652e9c5
parent f5573fba3d460ddf479826b7404e568cc825ed57
Author: Gregory Anders <8965202+gpanders@users.noreply.github.com>
Date:   Thu, 30 Nov 2023 11:05:33 -0600

refactor: explicitly abort on OOM condition (#26330)

assert() would not abort in release builds, meaning an OOM condition
would be undetected.
Diffstat:
Msrc/nvim/tui/input.c | 14+++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/nvim/tui/input.c b/src/nvim/tui/input.c @@ -700,12 +700,12 @@ static void handle_raw_buffer(TermInput *input, bool force) if (size > termkey_get_buffer_remaining(input->tk)) { // We are processing a very long escape sequence. Increase termkey's // internal buffer size. We don't handle out of memory situations so - // assert the result + // abort if it fails const size_t delta = size - termkey_get_buffer_remaining(input->tk); const size_t bufsize = termkey_get_buffer_size(input->tk); - const bool success = termkey_set_buffer_size(input->tk, MAX(bufsize + delta, bufsize * 2)); - assert(success); - (void)success; + if (!termkey_set_buffer_size(input->tk, MAX(bufsize + delta, bufsize * 2))) { + abort(); + } } size_t consumed = termkey_push_bytes(input->tk, ptr, size); @@ -730,9 +730,9 @@ static void handle_raw_buffer(TermInput *input, bool force) if (tk_count < INPUT_BUFFER_SIZE && tk_size > INPUT_BUFFER_SIZE) { // If the termkey buffer was resized to handle a large input sequence then // shrink it back down to its original size. - const bool success = termkey_set_buffer_size(input->tk, INPUT_BUFFER_SIZE); - assert(success); - (void)success; + if (!termkey_set_buffer_size(input->tk, INPUT_BUFFER_SIZE)) { + abort(); + } } }