Fixed memory bug

This commit is contained in:
llsth 2015-04-10 15:41:52 +02:00
parent b3753232f2
commit be6681d3f0
2 changed files with 41 additions and 0 deletions

View File

@ -43,6 +43,29 @@
#define Debug(x,y,z,w)
#endif
#ifdef __cplusplus
#if (__GNUC__ > 2)
#include <new>
void* operator new (size_t size) throw(std::bad_alloc) {
return AllocMemSafe(size);
}
void* operator new[] (size_t size) throw(std::bad_alloc) {
return AllocMemSafe(size);
}
void operator delete (void* ptr) throw() {
FreeMemSafe(ptr);
}
void operator delete[] (void* ptr) throw() {
FreeMemSafe(ptr);
}
#else
#endif
#endif
struct MemoryBlock
{
struct MemoryBlock *next;

View File

@ -28,6 +28,7 @@
#define AMATH_LIB_PLATFROM_H
#include <stddef.h>
#include "mem.h"
#define EMPTYSTRING ""
#define SPACE " "
@ -128,6 +129,23 @@ typedef u_int16_t uint16_t;
typedef u_int32_t uint32_t;
typedef u_int64_t uint64_t;
# define IPTR LONG*
#ifdef __cplusplus
inline void* operator new (size_t size) {
return AllocMemSafe(size);
}
inline void* operator new[] (size_t size) {
return AllocMemSafe(size);
}
inline void operator delete (void* ptr) {
FreeMemSafe(ptr);
}
inline void operator delete[] (void* ptr) {
FreeMemSafe(ptr);
}
#endif
#endif
#if defined(ANSICONSOLE)