Fix crash in wxDC::GetMultiLineTextExtent() after last commit.

Don't call wxTextMeasure::DoGetTextExtent() with NULL width pointer, it now
supposes that both width and height pointers are non-NULL.

Add at least a trivial unit test for GetMultiLineTextExtent().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72700 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2012-10-17 23:06:07 +00:00
parent 8cd79b7af0
commit bb996f2895
2 changed files with 9 additions and 1 deletions

View File

@ -101,7 +101,8 @@ void wxTextMeasureBase::GetMultiLineTextExtent(const wxString& text,
if ( !heightLineDefault )
{
// but we don't know it yet - choose something reasonable
DoGetTextExtent(wxS("W"), NULL, &heightLineDefault);
int dummy;
DoGetTextExtent(wxS("W"), &dummy, &heightLineDefault);
}
heightTextTotal += heightLineDefault;

View File

@ -95,6 +95,13 @@ void MeasuringTextTestCase::DCGetTextExtent()
wxClientDC dc(wxTheApp->GetTopWindow());
DoTestGetTextExtent(dc);
int w;
dc.GetMultiLineTextExtent("Good\nbye", &w, NULL);
const wxSize sz = dc.GetTextExtent("Good");
CPPUNIT_ASSERT_EQUAL( sz.x, w );
CPPUNIT_ASSERT( dc.GetMultiLineTextExtent("Good\nbye").y >= 2*sz.y );
}
void MeasuringTextTestCase::WindowGetTextExtent()