diff --git a/imgui.cpp b/imgui.cpp index f4f9b244..2cdcca34 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -1122,21 +1122,21 @@ void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& // Load file content into memory // Memory allocated with ImGui::MemAlloc(), must be freed by user using ImGui::MemFree() -bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size, int padding_bytes) +void* ImLoadFileToMemory(const char* filename, const char* file_open_mode, int* out_file_size, int padding_bytes) { - IM_ASSERT(filename && file_open_mode && out_file_data && out_file_size); - *out_file_data = NULL; - *out_file_size = 0; + IM_ASSERT(filename && file_open_mode); + if (out_file_size) + *out_file_size = 0; FILE* f; if ((f = fopen(filename, file_open_mode)) == NULL) - return false; + return NULL; long file_size_signed; if (fseek(f, 0, SEEK_END) || (file_size_signed = ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); - return false; + return NULL; } int file_size = (int)file_size_signed; @@ -1144,23 +1144,22 @@ bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** if (file_data == NULL) { fclose(f); - return false; + return NULL; } if (fread(file_data, 1, (size_t)file_size, f) != (size_t)file_size) { fclose(f); ImGui::MemFree(file_data); - return false; + return NULL; } if (padding_bytes > 0) memset((void *)(((char*)file_data) + file_size), 0, padding_bytes); fclose(f); - *out_file_data = file_data; if (out_file_size) *out_file_size = file_size; - return true; + return file_data; } //----------------------------------------------------------------------------- @@ -2084,9 +2083,9 @@ static void LoadSettings() if (!filename) return; - char* file_data; int file_size; - if (!ImLoadFileToMemory(filename, "rb", (void**)&file_data, &file_size, 1)) + char* file_data = (char*)ImLoadFileToMemory(filename, "rb", &file_size, 1); + if (!file_data) return; ImGuiIniData* settings = NULL; diff --git a/imgui_draw.cpp b/imgui_draw.cpp index df5d302c..97c7ac57 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -1098,9 +1098,9 @@ ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) { - void* data = NULL; int data_size = 0; - if (!ImLoadFileToMemory(filename, "rb", (void**)&data, &data_size, 0)) + void* data = ImLoadFileToMemory(filename, "rb", &data_size, 0); + if (!data) { IM_ASSERT(0); // Could not load file. return NULL; diff --git a/imgui_internal.h b/imgui_internal.h index 2e801e6a..42e18212 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -83,7 +83,7 @@ IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, cons // Helpers: Misc IMGUI_API ImU32 ImHash(const void* data, int data_size, ImU32 seed = 0); // Pass data_size==0 for zero-terminated strings -IMGUI_API bool ImLoadFileToMemory(const char* filename, const char* file_open_mode, void** out_file_data, int* out_file_size = NULL, int padding_bytes = 0); +IMGUI_API void* ImLoadFileToMemory(const char* filename, const char* file_open_mode, int* out_file_size = NULL, int padding_bytes = 0); IMGUI_API bool ImIsPointInTriangle(const ImVec2& p, const ImVec2& a, const ImVec2& b, const ImVec2& c); static inline bool ImCharIsSpace(int c) { return c == ' ' || c == '\t' || c == 0x3000; } static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; }