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:
@@ -101,7 +101,8 @@ void wxTextMeasureBase::GetMultiLineTextExtent(const wxString& text,
|
|||||||
if ( !heightLineDefault )
|
if ( !heightLineDefault )
|
||||||
{
|
{
|
||||||
// but we don't know it yet - choose something reasonable
|
// but we don't know it yet - choose something reasonable
|
||||||
DoGetTextExtent(wxS("W"), NULL, &heightLineDefault);
|
int dummy;
|
||||||
|
DoGetTextExtent(wxS("W"), &dummy, &heightLineDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
heightTextTotal += heightLineDefault;
|
heightTextTotal += heightLineDefault;
|
||||||
|
@@ -95,6 +95,13 @@ void MeasuringTextTestCase::DCGetTextExtent()
|
|||||||
wxClientDC dc(wxTheApp->GetTopWindow());
|
wxClientDC dc(wxTheApp->GetTopWindow());
|
||||||
|
|
||||||
DoTestGetTextExtent(dc);
|
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()
|
void MeasuringTextTestCase::WindowGetTextExtent()
|
||||||
|
Reference in New Issue
Block a user