From 44a007122460fd4967021656a30dbf85161fc53f Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 30 Mar 2011 14:15:53 +0000 Subject: [PATCH] Fix XTI compilation in STL build. Use explicit c_str() calls in XTI code as implicit conversion to "const char *" doesn't exist in STL build. This fixes compilation problems when wxUSE_EXTENDED_RTTI && wxUSE_STL. Closes #13087. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/xtitypes.h | 4 ++-- src/common/xti.cpp | 4 ++-- src/common/xtistrm.cpp | 8 ++++---- src/common/xtixml.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/wx/xtitypes.h b/include/wx/xtitypes.h index bbf9a69d03..0879897f53 100644 --- a/include/wx/xtitypes.h +++ b/include/wx/xtitypes.h @@ -88,7 +88,7 @@ private: wxEnumData s_enumData##e( s_enumDataMembers##e ); \ wxEnumData *wxGetEnumData(e) { return &s_enumData##e; } \ template<> void wxStringReadValue(const wxString& s, e &data ) \ - { data = (e) s_enumData##e.GetEnumMemberValue(s); } \ + { data = (e) s_enumData##e.GetEnumMemberValue(s.c_str()); } \ template<> void wxStringWriteValue(wxString &s, const e &data ) \ { s = s_enumData##e.GetEnumMemberName((int)data); } \ void FromLong##e( long data, wxAny& result ) \ @@ -202,7 +202,7 @@ void wxFlagsFromString(const wxString &s, e &data ) { flag = array[i]; int ivalue; - if ( edata->HasEnumMemberValue( flag, &ivalue ) ) + if ( edata->HasEnumMemberValue( flag.c_str(), &ivalue ) ) { data.m_data |= ivalue; } diff --git a/src/common/xti.cpp b/src/common/xti.cpp index 3287e23787..f207253ad7 100644 --- a/src/common/xti.cpp +++ b/src/common/xti.cpp @@ -931,14 +931,14 @@ void wxGenericPropertyAccessor::SetProperty(wxObject *object, const wxAny &value { wxDynamicObject* dynobj = wx_dynamic_cast(wxDynamicObject*, object); wxASSERT_MSG( dynobj, wxT("cannot call wxDynamicClassInfo::SetProperty on an object other than wxDynamicObject") ); - dynobj->SetProperty(m_propertyName, value ); + dynobj->SetProperty(m_propertyName.c_str(), value ); } void wxGenericPropertyAccessor::GetProperty(const wxObject *object, wxAny& value) const { const wxDynamicObject* dynobj = wx_dynamic_cast( const wxDynamicObject * , object ); wxASSERT_MSG( dynobj, wxT("cannot call wxDynamicClassInfo::SetProperty on an object other than wxDynamicObject") ); - value = dynobj->GetProperty( m_propertyName ); + value = dynobj->GetProperty( m_propertyName.c_str() ); } // ---------------------------------------------------------------------------- diff --git a/src/common/xtistrm.cpp b/src/common/xtistrm.cpp index a366c64d96..9f0860b933 100644 --- a/src/common/xtistrm.cpp +++ b/src/common/xtistrm.cpp @@ -577,7 +577,7 @@ void wxObjectRuntimeReaderCallback::SetProperty(int objectID, { wxObject *o; o = m_data->GetObject(objectID); - classInfo->SetProperty( o, propertyInfo->GetName(), value ); + classInfo->SetProperty( o, propertyInfo->GetName().c_str(), value ); } void wxObjectRuntimeReaderCallback::SetPropertyAsObject(int objectID, @@ -599,7 +599,7 @@ void wxObjectRuntimeReaderCallback::SetPropertyAsObject(int objectID, valo = dynvalo->GetSuperClassInstance(); } - classInfo->SetProperty( o, propertyInfo->GetName(), + classInfo->SetProperty( o, propertyInfo->GetName().c_str(), valClassInfo->ObjectPtrToAny(valo) ); } @@ -650,7 +650,7 @@ void wxObjectRuntimeReaderCallback::AddToPropertyCollection( int objectID, { wxObject *o; o = m_data->GetObject(objectID); - classInfo->AddToPropertyCollection( o, propertyInfo->GetName(), value ); + classInfo->AddToPropertyCollection( o, propertyInfo->GetName().c_str(), value ); } void wxObjectRuntimeReaderCallback::AddToPropertyCollectionAsObject(int objectID, @@ -674,7 +674,7 @@ void wxObjectRuntimeReaderCallback::AddToPropertyCollectionAsObject(int objectID valo = dynvalo->GetSuperClassInstance(); } - classInfo->AddToPropertyCollection( o, propertyInfo->GetName(), + classInfo->AddToPropertyCollection( o, propertyInfo->GetName().c_str(), valClassInfo->ObjectPtrToAny(valo) ); } diff --git a/src/common/xtixml.cpp b/src/common/xtixml.cpp index 2db3aac9b2..33fb30d341 100644 --- a/src/common/xtixml.cpp +++ b/src/common/xtixml.cpp @@ -483,7 +483,7 @@ int wxObjectXmlReader::ReadComponent(wxXmlNode *node, wxObjectReaderCallback *ca wxClassInfo* sinkClassInfo = GetObjectClassInfo( sinkOid ); callbacks->SetConnect( objectID, classInfo, pi, sinkClassInfo, - sinkClassInfo->FindHandlerInfo(handlerName), sinkOid ); + sinkClassInfo->FindHandlerInfo(handlerName.c_str()), sinkOid ); } else { -- 2.47.2