From a64a2047499924004fe030a82d483fac6aa74bdd Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Thu, 26 May 2016 17:32:58 +0200 Subject: [PATCH] Add more error checks to Direct2D wxGraphicsRenderer code. Check the results of the native Direct2D operations. --- src/msw/graphicsd2d.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/msw/graphicsd2d.cpp b/src/msw/graphicsd2d.cpp index eec2bacc09..e1ba3521e7 100644 --- a/src/msw/graphicsd2d.cpp +++ b/src/msw/graphicsd2d.cpp @@ -1139,7 +1139,8 @@ void wxD2DPathData::Flush() } m_figureOpened = false; - m_geometrySink->Close(); + HRESULT hr = m_geometrySink->Close(); + wxCHECK_HRESULT_RET(hr); m_geometryWritable = false; } @@ -1147,16 +1148,21 @@ void wxD2DPathData::Flush() void wxD2DPathData::EnsureGeometryOpen() { - if (!m_geometryWritable) { + if (!m_geometryWritable) + { wxCOMPtr newPathGeometry; - m_direct2dfactory->CreatePathGeometry(&newPathGeometry); + HRESULT hr; + hr = m_direct2dfactory->CreatePathGeometry(&newPathGeometry); + wxCHECK_HRESULT_RET(hr); m_geometrySink.reset(); - newPathGeometry->Open(&m_geometrySink); + hr = newPathGeometry->Open(&m_geometrySink); + wxCHECK_HRESULT_RET(hr); if (m_pathGeometry != NULL) { - m_pathGeometry->Stream(m_geometrySink); + hr = m_pathGeometry->Stream(m_geometrySink); + wxCHECK_HRESULT_RET(hr); } m_pathGeometry = newPathGeometry; @@ -1170,8 +1176,8 @@ void wxD2DPathData::EnsureSinkOpen() if (m_geometrySink == NULL) { - m_geometrySink = NULL; - m_pathGeometry->Open(&m_geometrySink); + HRESULT hr = m_pathGeometry->Open(&m_geometrySink); + wxCHECK_HRESULT_RET(hr); } }