Test using wxString::ToCDouble() in wxAny.

Apparently the heap corruption problems in wxOSX/PPC build are due to using
wxString::ToDouble() and not anything done specifically in wxAny at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-05-17 20:00:10 +00:00
parent 1422312707
commit 43c42c18d3
2 changed files with 1 additions and 13 deletions

View File

@@ -374,7 +374,7 @@ bool wxAnyConvertString(const wxString& value,
else if ( wxANY_VALUE_TYPE_CHECK_TYPE(dstType, double) ) else if ( wxANY_VALUE_TYPE_CHECK_TYPE(dstType, double) )
{ {
double value2; double value2;
if ( !value.ToDouble(&value2) ) if ( !value.ToCDouble(&value2) )
return false; return false;
wxAnyValueTypeImplDouble::SetValue(value2, dst); wxAnyValueTypeImplDouble::SetValue(value2, dst);
} }

View File

@@ -306,14 +306,6 @@ void wxAnyTestCase::Null()
void wxAnyTestCase::GetAs() void wxAnyTestCase::GetAs()
{ {
// FIXME: Parts of this test result in heap corruption in wxOSX/PPC builds
// for some unknown reason, disable them to at least allow running
// the other tests.
#if defined(__WXOSX__) && defined(__POWERPC__)
#warning "Disabling some tests under PPC, please consider debugging them."
#define wxDONT_TEST
#endif // OSX/PPC
// //
// Test dynamic conversion // Test dynamic conversion
bool res; bool res;
@@ -364,9 +356,7 @@ void wxAnyTestCase::GetAs()
// should not work. // should not work.
CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&l)); CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&l));
CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&ul)); CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&ul));
#ifndef wxDONT_TEST
CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&f)); CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&f));
#endif // !wxDONT_TEST
CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&b)); CPPUNIT_ASSERT(!m_anyStringString1.GetAs(&b));
// Let's test some other conversions from string that should work. // Let's test some other conversions from string that should work.
@@ -379,11 +369,9 @@ void wxAnyTestCase::GetAs()
res = anyString.GetAs(&ul); res = anyString.GetAs(&ul);
CPPUNIT_ASSERT(res); CPPUNIT_ASSERT(res);
CPPUNIT_ASSERT_EQUAL(ul, static_cast<unsigned long>(15)); CPPUNIT_ASSERT_EQUAL(ul, static_cast<unsigned long>(15));
#ifndef wxDONT_TEST
res = anyString.GetAs(&f); res = anyString.GetAs(&f);
CPPUNIT_ASSERT(res); CPPUNIT_ASSERT(res);
CPPUNIT_ASSERT_DOUBLES_EQUAL(f, 15.0, FEQ_DELTA); CPPUNIT_ASSERT_DOUBLES_EQUAL(f, 15.0, FEQ_DELTA);
#endif // !wxDONT_TEST
anyString = "TRUE"; anyString = "TRUE";
res = anyString.GetAs(&b); res = anyString.GetAs(&b);
CPPUNIT_ASSERT(res); CPPUNIT_ASSERT(res);