OSDN Git Service

ccrystalrendererdirectwrite.cpp: A temporary workaround for a crash when displaying...
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 2 May 2020 11:02:28 +0000 (20:02 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 2 May 2020 11:02:28 +0000 (20:02 +0900)
It needs to investigate.

Externals/crystaledit/editlib/ccrystalrendererdirectwrite.cpp

index 729ea62..26e0dba 100644 (file)
@@ -475,6 +475,11 @@ void CCrystalRendererDirectWrite::DrawText(int x, int y, const CRect &rc, const
                float fBaselineOriginX = static_cast<float>(x);
                for (size_t i = 0; i < indices.size(); ++i)
                {
+                       if (indices[i].glyphPos >= customGlyphAdvances.size())
+                       {
+                               TRACE(_T("BUG: indices[i].glyphPos >= customGlyphAdvances.size()\n"));
+                               break;
+                       }
                        DrawGlyphRunParams& param = drawingContext.m_drawGlyphRunParams[indices[i].i];
                        CustomGlyphRun customGlyphRun(param.glyphRun, &customGlyphAdvances[indices[i].glyphPos], m_charSize.height);
                        float fBaselineOriginY = y + customGlyphRun.ascent;