From ede3a3b92dbd2d1b7f12e19a3314a2c15b3c2928 Mon Sep 17 00:00:00 2001 From: omar Date: Fri, 12 Oct 2018 13:29:13 +0200 Subject: [PATCH] Fixes crash introduced in previous commit 9cf94d5. --- imgui_draw.cpp | 8 ++++---- imgui_widgets.cpp | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 3faa9b01..14d924d4 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -2648,9 +2648,8 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col if (y + line_height < clip_rect.y && !word_wrap_enabled) while (y + line_height < clip_rect.y && s < text_end) { - s = (const char*)memchr(s, '\n', text_end - s) + 1; - if (s == NULL) - s = text_end; + s = (const char*)memchr(s, '\n', text_end - s); + s = s ? s + 1 : text_end; y += line_height; } @@ -2662,7 +2661,8 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col float y_end = y; while (y_end < clip_rect.w && s_end < text_end) { - s_end = (const char*)memchr(s_end, '\n', text_end - s_end) + 1; + s_end = (const char*)memchr(s_end, '\n', text_end - s_end); + s = s ? s + 1 : text_end; y_end += line_height; } text_end = s_end; diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index df83a1d8..4e632a95 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -3691,7 +3691,8 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2 break; if (rect_pos.y < clip_rect.y) { - p = (const ImWchar*)wmemchr((const wchar_t*)p, '\n', text_selected_end - p) + 1; + p = (const ImWchar*)wmemchr((const wchar_t*)p, '\n', text_selected_end - p); + p = p ? p + 1 : text_selected_end; } else {