From 8386e4fb7e6565b5a6c09a08120bcf939e98a05f Mon Sep 17 00:00:00 2001 From: ocornut Date: Sun, 18 Jan 2015 11:36:23 +0000 Subject: [PATCH] Fix handling of NULL GlyphRanges. Asserting on AddFontFromFileTTF() failure. --- imgui.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 9a713332..fc603d95 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -6422,7 +6422,10 @@ ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, void* data = NULL; size_t data_size = 0; if (!ImLoadFileToMemory(filename, "rb", (void**)&data, &data_size)) + { + IM_ASSERT(0); // Could not load file. return NULL; + } // Add ImFont* font = AddFontFromMemoryTTF(data, data_size, size_pixels, glyph_ranges, font_no); @@ -6473,7 +6476,10 @@ bool ImFontAtlas::Build() IM_ASSERT(font_offset >= 0); if (!stbtt_InitFont(&data.FontInfo, (unsigned char*)data.TTFData, font_offset)) return false; - for (const ImWchar* in_range = InputData[input_i]->GlyphRanges; in_range[0] && in_range[1]; in_range += 2) + + if (!data.GlyphRanges) + data.GlyphRanges = GetGlyphRangesDefault(); + for (const ImWchar* in_range = data.GlyphRanges; in_range[0] && in_range[1]; in_range += 2) total_glyph_count += (in_range[1] - in_range[0]) + 1; } @@ -6498,8 +6504,6 @@ bool ImFontAtlas::Build() for (size_t input_i = 0; input_i < InputData.size(); input_i++) { ImFontAtlasData& data = *InputData[input_i]; - if (!data.GlyphRanges) - data.GlyphRanges = GetGlyphRangesDefault(); // Setup ranges int glyph_count = 0;