X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf2f341a0a5b9d9f8e1174b8e9660491b0b2dc22..01dba85a7fc9a1103f866c7c3a5cc72f21c0784e:/src/common/object.cpp?ds=sidebyside diff --git a/src/common/object.cpp b/src/common/object.cpp index ec127bd3ae..9f7e1913ee 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); } @@ -189,7 +205,7 @@ bool wxClassInfo::IsKindOf(wxClassInfo *info) const // PROBABLY NO LONGER TRUE now I've done DLL creation right. /* #if WXMAKINGDLL -if (GetClassName() && info->GetClassName() && (strcmp(GetClassName(), info->GetClassName()) == 0)) +if (GetClassName() && info->GetClassName() && (wxStrcmp(GetClassName(), info->GetClassName()) == 0)) return TRUE; #else */