summaryrefslogtreecommitdiff
path: root/patches/duma/2_5_15/200-cpp11-new-operator.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/duma/2_5_15/200-cpp11-new-operator.patch')
-rw-r--r--patches/duma/2_5_15/200-cpp11-new-operator.patch96
1 files changed, 96 insertions, 0 deletions
diff --git a/patches/duma/2_5_15/200-cpp11-new-operator.patch b/patches/duma/2_5_15/200-cpp11-new-operator.patch
new file mode 100644
index 0000000..900333e
--- /dev/null
+++ b/patches/duma/2_5_15/200-cpp11-new-operator.patch
@@ -0,0 +1,96 @@
+diff --git a/dumapp.cpp b/dumapp.cpp
+index dbddf66..b5e9ba3 100644
+--- a/dumapp.cpp
++++ b/dumapp.cpp
+@@ -189,8 +189,7 @@ void * duma_new_operator(DUMA_SIZE_T userSize, enum _DUMA_Allocator allocator, b
+ * Single object form, no debug information
+ * (11) = (a) ; ASW
+ */
+-void * DUMA_CDECL operator new( DUMA_SIZE_T size )
+-throw(std::bad_alloc)
++void * DUMA_CDECL operator new( DUMA_SIZE_T size ) NEW_THROW_SPEC
+ {
+ return duma_new_operator(size, EFA_NEW_ELEM, true DUMA_PARAMS_UK);
+ }
+@@ -253,8 +252,7 @@ throw()
+ * Array object form, no debug information
+ * (21) = (a) ; AAW
+ */
+-void * DUMA_CDECL operator new[]( DUMA_SIZE_T size )
+-throw(std::bad_alloc)
++void * DUMA_CDECL operator new[]( DUMA_SIZE_T size ) NEW_THROW_SPEC
+ {
+ return duma_new_operator(size, EFA_NEW_ARRAY, true DUMA_PARAMS_UK);
+ }
+@@ -320,8 +318,7 @@ throw()
+ * Single object form with debug information
+ * (31) = (a) ; ASW
+ */
+-void * DUMA_CDECL operator new( DUMA_SIZE_T size, const char *filename, int lineno )
+-throw( std::bad_alloc )
++void * DUMA_CDECL operator new( DUMA_SIZE_T size, const char *filename, int lineno ) NEW_THROW_SPEC
+ {
+ return duma_new_operator(size, EFA_NEW_ELEM, true DUMA_PARAMS_FILELINE);
+ }
+@@ -373,8 +370,7 @@ throw()
+ * Array object form with debug information
+ * (41) = (a) ; AAW
+ */
+-void * DUMA_CDECL operator new[]( DUMA_SIZE_T size, const char *filename, int lineno )
+-throw( std::bad_alloc )
++void * DUMA_CDECL operator new[]( DUMA_SIZE_T size, const char *filename, int lineno ) NEW_THROW_SPEC
+ {
+ return duma_new_operator(size, EFA_NEW_ARRAY, true DUMA_PARAMS_FILELINE);
+ }
+diff --git a/dumapp.h b/dumapp.h
+index fc40d9a..7175359 100644
+--- a/dumapp.h
++++ b/dumapp.h
+@@ -64,6 +64,11 @@
+ #endif
+ #endif
+
++#if __cplusplus <= 199711L
++#define NEW_THROW_SPEC throw(std::bad_alloc)
++#else
++#define NEW_THROW_SPEC
++#endif
+
+ #ifndef DUMA_NO_CPP_SUPPORT
+
+@@ -81,7 +86,7 @@
+ /* (12) = (b) ; ASN */
+ /* (13) = (c) ; FSW */
+ /* (14) = (d) ; FSN */
+- void * DUMA_CDECL operator new(DUMA_SIZE_T) throw(std::bad_alloc);
++ void * DUMA_CDECL operator new(DUMA_SIZE_T) NEW_THROW_SPEC;
+ void * DUMA_CDECL operator new(DUMA_SIZE_T, const std::nothrow_t &) throw();
+ void DUMA_CDECL operator delete(void *) throw();
+ void DUMA_CDECL operator delete(void *, const std::nothrow_t &) throw();
+@@ -91,7 +96,7 @@
+ /* (22) = (b) ; AAN */
+ /* (23) = (c) ; FAW */
+ /* (24) = (d) ; FAN */
+- void * DUMA_CDECL operator new[](DUMA_SIZE_T) throw(std::bad_alloc);
++ void * DUMA_CDECL operator new[](DUMA_SIZE_T) NEW_THROW_SPEC;
+ void * DUMA_CDECL operator new[](DUMA_SIZE_T, const std::nothrow_t &) throw();
+ void DUMA_CDECL operator delete[](void *) throw();
+ void DUMA_CDECL operator delete[](void *, const std::nothrow_t &) throw();
+@@ -103,7 +108,7 @@
+ /* (32) = (b) ; ASN */
+ /* (33) = (c) ; FSW */
+ /* (34) = (d) ; FSN */
+- void * DUMA_CDECL operator new(DUMA_SIZE_T, const char *, int) throw(std::bad_alloc);
++ void * DUMA_CDECL operator new(DUMA_SIZE_T, const char *, int) NEW_THROW_SPEC;
+ void * DUMA_CDECL operator new(DUMA_SIZE_T, const std::nothrow_t &, const char *, int) throw();
+ void DUMA_CDECL operator delete(void *, const char *, int) throw();
+ void DUMA_CDECL operator delete(void *, const std::nothrow_t &, const char *, int) throw();
+@@ -113,7 +118,7 @@
+ /* (42) = (b) ; AAN */
+ /* (43) = (c) ; FAW */
+ /* (44) = (d) ; FAN */
+- void * DUMA_CDECL operator new[](DUMA_SIZE_T, const char *, int) throw(std::bad_alloc);
++ void * DUMA_CDECL operator new[](DUMA_SIZE_T, const char *, int) NEW_THROW_SPEC;
+ void * DUMA_CDECL operator new[](DUMA_SIZE_T, const std::nothrow_t &, const char *, int) throw();
+ void DUMA_CDECL operator delete[](void *, const char *, int) throw();
+ void DUMA_CDECL operator delete[](void *, const std::nothrow_t &, const char *, int) throw();