ImVector: added clear_delete(), clear_destruct() helpers.

This commit is contained in:
ocornut
2021-06-09 16:57:35 +02:00
parent 61f4aec868
commit d0c6dd9baf
4 changed files with 14 additions and 22 deletions

View File

@ -2006,9 +2006,7 @@ void ImFontAtlas::ClearTexData()
void ImFontAtlas::ClearFonts()
{
IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!");
for (int i = 0; i < Fonts.Size; i++)
IM_DELETE(Fonts[i]);
Fonts.clear();
Fonts.clear_delete();
}
void ImFontAtlas::Clear()
@ -2568,9 +2566,8 @@ static bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas)
}
}
// Cleanup temporary (ImVector doesn't honor destructor)
for (int src_i = 0; src_i < src_tmp_array.Size; src_i++)
src_tmp_array[src_i].~ImFontBuildSrcData();
// Cleanup
src_tmp_array.clear_destruct();
ImFontAtlasBuildFinish(atlas);
return true;