/*
******************************************************************************
*
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2011, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
* 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*/) U_NO_THROW {
+ return UMemory::operator new(size);
+}
+
+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 */
+
+
#endif
UObject::~UObject() {}
U_NAMESPACE_END
+U_NAMESPACE_USE
+U_CAPI void U_EXPORT2
+uprv_deleteUObject(void *obj) {
+ delete reinterpret_cast<UObject *>(obj);
+}