X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf2f341a0a5b9d9f8e1174b8e9660491b0b2dc22..e1ee679c2e3f48bc4f2607e35033ed5505ed6665:/src/common/object.cpp diff --git a/src/common/object.cpp b/src/common/object.cpp index ec127bd3ae..0672600cf9 100644 --- a/src/common/object.cpp +++ b/src/common/object.cpp @@ -45,7 +45,7 @@ #endif #if !USE_SHARED_LIBRARY -wxClassInfo wxObject::sm_classwxObject((wxChar *) _T("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL); +wxClassInfo wxObject::sm_classwxObject((wxChar *) wxT("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL); wxClassInfo* wxClassInfo::sm_first = (wxClassInfo *) NULL; wxHashTable* wxClassInfo::sm_classTable = (wxHashTable*) NULL; #endif @@ -87,7 +87,23 @@ bool wxObject::IsKindOf(wxClassInfo *info) const return FALSE; } -#if defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT +wxObject *wxObject::Clone() const +{ + wxObject *object = GetClassInfo()->CreateObject(); + CopyObject(*object); + return object; +} + +#ifdef __WXDEBUG__ +void wxObject::CopyObject(wxObject& object_dest) const +#else // !Debug +void wxObject::CopyObject(wxObject& WXUNUSED(object_dest)) const +#endif // Debug/!Debug +{ + wxASSERT(object_dest.GetClassInfo()->IsKindOf(GetClassInfo())); +} + +#if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT) void wxObject::Dump(ostream& str) { if (GetClassInfo() && GetClassInfo()->GetClassName()) @@ -103,7 +119,7 @@ void wxObject::Dump(ostream& str) #undef new #endif -void *wxObject::operator new (size_t size, char * fileName, int lineNum) +void *wxObject::operator new (size_t size, wxChar * fileName, int lineNum) { return wxDebugAlloc(size, fileName, lineNum, TRUE); } @@ -123,7 +139,7 @@ void wxObject::operator delete(void* pData, char* /* fileName */, int /* lineNum // Cause problems for VC++ - crashes #if !defined(__VISUALC__) && wxUSE_ARRAY_MEMORY_OPERATORS -void * wxObject::operator new[] (size_t size, char * fileName, int lineNum) +void * wxObject::operator new[] (size_t size, wxChar * fileName, int lineNum) { return wxDebugAlloc(size, fileName, lineNum, TRUE, TRUE); }