Просмотр исходного кода

build correctly without DO_MEMORY_USAGE

David Rose 14 лет назад
Родитель
Сommit
f6a32897ba
2 измененных файлов с 36 добавлено и 36 удалено
  1. 36 5
      dtool/src/dtoolbase/dtoolbase.h
  2. 0 31
      dtool/src/dtoolbase/memoryHook.h

+ 36 - 5
dtool/src/dtoolbase/dtoolbase.h

@@ -336,12 +336,39 @@
 #define ALIGN_16BYTE
 #endif
 
+// Do we need to implement memory-alignment enforcement within the
+// MemoryHook class, or will the underlying malloc implementation
+// provide it automatically?
+#if !defined(LINMATH_ALIGN)
+// We don't actually require any special memory-alignment beyond what
+// the underlying implementation is likely to provide anyway.
+#undef MEMORY_HOOK_DO_ALIGN
+
+#elif defined(USE_MEMORY_DLMALLOC)
+// This specialized malloc implementation can perform the required
+// alignment.
+#undef MEMORY_HOOK_DO_ALIGN
+
+#elif defined(USE_MEMORY_PTMALLOC2)
+// But not this one.  For some reason it crashes when we try to build
+// it with alignment 16.  So if we're using ptmalloc2, we need to
+// enforce alignment externally.
+#define MEMORY_HOOK_DO_ALIGN 1
+
+#elif defined(IS_OSX) || defined(_WIN64)
+// The OS-provided malloc implementation will do the required
+// alignment.
+#undef MEMORY_HOOK_DO_ALIGN
+
+#else
+// Whoops, we need memory alignment, and we have to provide it ourselves.
+#define MEMORY_HOOK_DO_ALIGN 1
+
+#endif
+
 /* Determine our memory-allocation requirements. */
-#if defined(USE_MEMORY_PTMALLOC2) || defined(USE_MEMORY_DLMALLOC) || defined(DO_MEMORY_USAGE)
-/* If we are using our own alternative malloc, or if we're building
-   with DO_MEMORY_USAGE in effect, it follows we need to use our
-   custom STL allocator. */
-#define USE_STL_ALLOCATOR 1
+#if defined(USE_MEMORY_PTMALLOC2) || defined(USE_MEMORY_DLMALLOC) || defined(DO_MEMORY_USAGE) || defined(MEMORY_HOOK_DO_ALIGN)
+/* In this case we have some custom memory management requirements. */
 #else 
 /* Otherwise, if we have no custom memory management needs at all, we
    might as well turn it all off and go straight to the OS-level
@@ -349,6 +376,10 @@
 #define USE_MEMORY_NOWRAPPERS 1
 #endif
 
+/* We must always use the STL allocator nowadays, because we have
+   redefined the constructors for pvector, pmap, etc. */
+#define USE_STL_ALLOCATOR 1
+
 /*
  We define the macros BEGIN_PUBLISH and END_PUBLISH to bracket
  functions and global variable definitions that are to be published

+ 0 - 31
dtool/src/dtoolbase/memoryHook.h

@@ -23,37 +23,6 @@
 
 class DeletedBufferChain;
 
-
-// Do we need to implement memory-alignment enforcement within the
-// MemoryHook class, or will the underlying malloc implementation
-// provide it automatically?
-#if !defined(LINMATH_ALIGN)
-// We don't actually require any special memory-alignment beyond what
-// the underlying implementation is likely to provide anyway.
-#undef MEMORY_HOOK_DO_ALIGN
-
-#elif defined(USE_MEMORY_DLMALLOC)
-// This specialized malloc implementation can perform the required
-// alignment.
-#undef MEMORY_HOOK_DO_ALIGN
-
-#elif defined(USE_MEMORY_PTMALLOC2)
-// But not this one.  For some reason it crashes when we try to build
-// it with alignment 16.  So if we're using ptmalloc2, we need to
-// enforce alignment externally.
-#define MEMORY_HOOK_DO_ALIGN 1
-
-#elif defined(IS_OSX) || defined(_WIN64)
-// The OS-provided malloc implementation will do the required
-// alignment.
-#undef MEMORY_HOOK_DO_ALIGN
-
-#else
-// Whoops, we need memory alignment, and we have to provide it ourselves.
-#define MEMORY_HOOK_DO_ALIGN 1
-
-#endif
-
 ////////////////////////////////////////////////////////////////////
 //       Class : MemoryHook
 // Description : This class provides a wrapper around the various