+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
* file name: uobject.h
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
* and replace with uprv_malloc/uprv_free.
*/
-void * U_EXPORT2 UMemory::operator new(size_t size) {
+void * U_EXPORT2 UMemory::operator new(size_t size) U_NO_THROW {
return uprv_malloc(size);
}
-void U_EXPORT2 UMemory::operator delete(void *p) {
+void U_EXPORT2 UMemory::operator delete(void *p) U_NO_THROW {
if(p!=NULL) {
uprv_free(p);
}
}
-void * U_EXPORT2 UMemory::operator new[](size_t size) {
+void * U_EXPORT2 UMemory::operator new[](size_t size) U_NO_THROW {
return uprv_malloc(size);
}
-void U_EXPORT2 UMemory::operator delete[](void *p) {
+void U_EXPORT2 UMemory::operator delete[](void *p) U_NO_THROW {
if(p!=NULL) {
uprv_free(p);
}
}
#if U_HAVE_DEBUG_LOCATION_NEW
-void * U_EXPORT2 UMemory::operator new(size_t size, const char* /*file*/, int /*line*/) {
+void * U_EXPORT2 UMemory::operator new(size_t size, const char* /*file*/, int /*line*/) U_NO_THROW {
return UMemory::operator new(size);
}
-void U_EXPORT2 UMemory::operator delete(void* p, const char* /*file*/, int /*line*/) {
+void U_EXPORT2 UMemory::operator delete(void* p, const char* /*file*/, int /*line*/) U_NO_THROW {
UMemory::operator delete(p);
}
#endif /* U_HAVE_DEBUG_LOCATION_NEW */
UObject::~UObject() {}
-// Future implementation for RTTI that support subtyping. [alan]
-//
-// UClassID UObject::getStaticClassID() {
-// return (UClassID) NULL;
-// }
-//
-// UBool UObject::instanceOf(UClassID type) const {
-// UClassID c = getDynamicClassID();
-// for (;;) {
-// if (c == type) {
-// return TRUE;
-// } else if (c == (UClassID) NULL) {
-// return FALSE;
-// }
-// c = * (UClassID*) c;
-// }
-// }
+UClassID UObject::getDynamicClassID() const { return NULL; }
U_NAMESPACE_END
+U_NAMESPACE_USE
+U_CAPI void U_EXPORT2
+uprv_deleteUObject(void *obj) {
+ delete static_cast<UObject *>(obj);
+}