浏览代码

Disable forced inline when building in debug.

Juan Linietsky 7 年之前
父节点
当前提交
75c29879b0
共有 2 个文件被更改,包括 10 次插入1 次删除
  1. 2 1
      SConstruct
  2. 8 0
      core/typedefs.h

+ 2 - 1
SConstruct

@@ -234,7 +234,8 @@ env_base.platform_exporters = platform_exporters
 env_base.platform_apis = platform_apis
 
 if (env_base['target'] == 'debug'):
-    env_base.Append(CPPDEFINES=['DEBUG_MEMORY_ALLOC'])
+    env_base.Append(CPPDEFINES=['DEBUG_MEMORY_ALLOC','DISABLE_FORCED_INLINE'])
+    
 
 if (env_base['no_editor_splash']):
     env_base.Append(CPPDEFINES=['NO_EDITOR_SPLASH'])

+ 8 - 0
core/typedefs.h

@@ -44,6 +44,7 @@
 #define _MKSTR(m_x) _STR(m_x)
 #endif
 
+//should always inline no matter what
 #ifndef _ALWAYS_INLINE_
 
 #if defined(__GNUC__) && (__GNUC__ >= 4)
@@ -58,10 +59,17 @@
 
 #endif
 
+//should always inline, except in some cases because it makes debugging harder
 #ifndef _FORCE_INLINE_
+
+#ifdef DISABLE_FORCED_INLINE
+#define _FORCE_INLINE_ inline
+#else
 #define _FORCE_INLINE_ _ALWAYS_INLINE_
 #endif
 
+#endif
+
 //custom, gcc-safe offsetof, because gcc complains a lot.
 template <class T>
 T *_nullptr() {