diff --git a/docs/changes.md b/docs/changes.md index 0b3bb4698e..f5abde9bae 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -5,6 +5,7 @@ * 修改文档中的错误(感谢俊杰提供补丁)。 * 更新awtk config sample。 * 修改软键盘弹出时出现屏保的问题。 + * 完善new.cpp/new.hpp (感谢陈谭提供补丁)。 * 2019/10/23 * 修改clone出来的edit的显示问题。 diff --git a/src/misc/new.cpp b/src/misc/new.cpp index 0dce0b468d..612c096eef 100755 --- a/src/misc/new.cpp +++ b/src/misc/new.cpp @@ -4,7 +4,7 @@ #ifndef HAS_STD_MALLOC -void* operator new(std::size_t size) throw(std::bad_alloc) { +void* operator new(std::size_t size) __TK_THROW_BAD_ALLOC { if (size >= MAX_SIZE) { log_debug("size is too large\n"); } @@ -12,7 +12,7 @@ void* operator new(std::size_t size) throw(std::bad_alloc) { return TKMEM_ALLOC(size); } -void* operator new[](std::size_t size) throw(std::bad_alloc) { +void* operator new[](std::size_t size) __TK_THROW_BAD_ALLOC { if (size >= MAX_SIZE) { log_debug("size is too large\n"); } diff --git a/src/misc/new.hpp b/src/misc/new.hpp index 09fea6723a..dbe8be90e1 100755 --- a/src/misc/new.hpp +++ b/src/misc/new.hpp @@ -7,9 +7,15 @@ #ifndef HAS_STD_MALLOC -void* operator new(std::size_t size) throw(std::bad_alloc); +#if __cplusplus < 201103L || defined(__ARMCC_VERSION) +#define __TK_THROW_BAD_ALLOC throw(std::bad_alloc) +#else +#define __TK_THROW_BAD_ALLOC +#endif -void* operator new[](std::size_t size) throw(std::bad_alloc); +void* operator new(std::size_t size) __TK_THROW_BAD_ALLOC; + +void* operator new[](std::size_t size) __TK_THROW_BAD_ALLOC; void operator delete(void* obj) throw();