some optimizations in godot memory handling
This commit is contained in:
parent
89300b70e7
commit
4e46143499
|
@ -112,13 +112,6 @@ size_t Memory::get_dynamic_mem_usage() {
|
|||
return MemoryPoolDynamic::get_singleton()->get_total_usage();
|
||||
}
|
||||
|
||||
void * operator new(size_t p_size,void *p_pointer,size_t check, const char *p_description) {
|
||||
|
||||
void *failptr=0;
|
||||
ERR_FAIL_COND_V( check < p_size , failptr); /** bug, or strange compiler, most likely */
|
||||
|
||||
return p_pointer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -236,11 +236,11 @@ void * operator new(size_t p_size,void *p_pointer,size_t check, const char *p_de
|
|||
#endif
|
||||
|
||||
|
||||
_FORCE_INLINE_ void postinitialize_handler(void *) {}
|
||||
_ALWAYS_INLINE_ void postinitialize_handler(void *) {}
|
||||
|
||||
|
||||
template<class T>
|
||||
_FORCE_INLINE_ T *_post_initialize(T *p_obj) {
|
||||
_ALWAYS_INLINE_ T *_post_initialize(T *p_obj) {
|
||||
|
||||
postinitialize_handler(p_obj);
|
||||
return p_obj;
|
||||
|
@ -249,19 +249,26 @@ _FORCE_INLINE_ T *_post_initialize(T *p_obj) {
|
|||
#ifdef DEBUG_MEMORY_ENABLED
|
||||
|
||||
#define memnew(m_class) _post_initialize(new(__FILE__":"__STR(__LINE__)", memnew type: "__STR(m_class)) m_class)
|
||||
#define memnew_placement(m_placement,m_class) _post_initialize(new(m_placement,sizeof(m_class),__FILE__":"__STR(__LINE__)", type: "__STR(m_class)) m_class)
|
||||
|
||||
#else
|
||||
|
||||
#define memnew(m_class) _post_initialize(new("") m_class)
|
||||
#define memnew_placement(m_placement,m_class) _post_initialize(new(m_placement,sizeof(m_class),"") m_class)
|
||||
|
||||
#endif
|
||||
|
||||
_ALWAYS_INLINE_ void * operator new(size_t p_size,void *p_pointer,size_t check, const char *p_description) {
|
||||
// void *failptr=0;
|
||||
// ERR_FAIL_COND_V( check < p_size , failptr); /** bug, or strange compiler, most likely */
|
||||
|
||||
return p_pointer;
|
||||
}
|
||||
|
||||
|
||||
#define memnew_allocator(m_class,m_allocator) _post_initialize(new(m_allocator::alloc) m_class)
|
||||
#define memnew_placement(m_placement,m_class) _post_initialize(new(m_placement,sizeof(m_class),"") m_class)
|
||||
|
||||
|
||||
_FORCE_INLINE_ bool predelete_handler(void *) { return true; }
|
||||
_ALWAYS_INLINE_ bool predelete_handler(void *) { return true; }
|
||||
|
||||
template<class T>
|
||||
void memdelete(T *p_class) {
|
||||
|
|
|
@ -111,9 +111,9 @@ def configure(env):
|
|||
if (env["target"]=="release"):
|
||||
|
||||
if (env["debug_release"]=="yes"):
|
||||
env.Append(CCFLAGS=['-g2','-fomit-frame-pointer'])
|
||||
env.Append(CCFLAGS=['-g2'])
|
||||
else:
|
||||
env.Append(CCFLAGS=['-O2','-ffast-math','-fomit-frame-pointer'])
|
||||
env.Append(CCFLAGS=['-O3','-ffast-math'])
|
||||
|
||||
elif (env["target"]=="release_debug"):
|
||||
|
||||
|
|
Loading…
Reference in New Issue