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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user