Fix crash in wxGraphicsPen::CreatePen() after wxPenInfo changes

Don't unconditionally dereference the result of wxPen::GetStipple()
which can (and often is) null.

This fixes crash introduced in 40f8403f5d.
This commit is contained in:
Vadim Zeitlin
2017-09-13 14:02:45 +02:00
parent 85ea9c180d
commit d25d2400fc

View File

@@ -828,17 +828,22 @@ wxGraphicsPen wxGraphicsContext::CreatePen(const wxPen& pen) const
if ( !pen.IsOk() )
return wxGraphicsPen();
wxDash *dashes;
int nb_dashes = pen.GetDashes(&dashes);
wxGraphicsPenInfo info = wxGraphicsPenInfo()
.Colour(pen.GetColour())
.Width(pen.GetWidth())
.Style(pen.GetStyle())
.Join(pen.GetJoin())
.Cap(pen.GetCap())
;
return DoCreatePen(wxGraphicsPenInfo()
.Colour(pen.GetColour())
.Width(pen.GetWidth())
.Style(pen.GetStyle())
.Stipple(*pen.GetStipple())
.Dashes(nb_dashes, dashes)
.Join(pen.GetJoin())
.Cap(pen.GetCap()));
wxDash *dashes;
if ( int nb_dashes = pen.GetDashes(&dashes) )
info.Dashes(nb_dashes, dashes);
if ( wxBitmap* const stipple = pen.GetStipple() )
info.Stipple(*stipple);
return DoCreatePen(info);
}
wxGraphicsPen wxGraphicsContext::DoCreatePen(const wxGraphicsPenInfo& info) const