svn merge ^/trunk/blender -r47423:47506
[blender.git] / intern / memutil / MEM_Allocator.h
index b3a6df74ba24c008360613bc04be4e85df0bd5b8..0020094ebbb9bc3958689580651c6a11ed787afc 100644 (file)
@@ -1,14 +1,10 @@
-/**
- *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * Contributor(s): Peter Schlaile <peter@schlaile.de> 2005
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef __MEM_Allocator_h_included__
-#define __MEM_Allocator_h_included__ 1
+/** \file memutil/MEM_Allocator.h
+ *  \ingroup memutil
+ */
 
-#include "guardedalloc/MEM_guardedalloc.h"
 
-#ifdef _MSC_VER
-#if _MSC_VER < 1300 // 1200 == VC++ 6.0 according to boost
-#define MS_VISUALC_6_0_WORKAROUND 1
-#endif
-#endif
+#ifndef __MEM_ALLOCATOR_H__
+#define __MEM_ALLOCATOR_H__
+
+#include <stddef.h>
+#include "guardedalloc/MEM_guardedalloc.h"
+#include "guardedalloc/MEM_sys_types.h"
 
 template<typename _Tp>
 struct MEM_Allocator
@@ -46,20 +43,16 @@ struct MEM_Allocator
        typedef const _Tp& const_reference;
        typedef _Tp        value_type;
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
        template<typename _Tp1>
         struct rebind { 
                typedef MEM_Allocator<_Tp1> other; 
        };
-#endif
 
        MEM_Allocator() throw() {}
-       MEM_Allocator(const MEM_Allocator& __a) throw() {}
+       MEM_Allocator(const MEM_Allocator&) throw() {}
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
        template<typename _Tp1>
-        MEM_Allocator(const MEM_Allocator<_Tp1> __a) throw() { }
-#endif
+        MEM_Allocator(const MEM_Allocator<_Tp1>) throw() { }
 
        ~MEM_Allocator() throw() {}
 
@@ -67,11 +60,6 @@ struct MEM_Allocator
 
        const_pointer address(const_reference __x) const { return &__x; }
 
-#ifdef MS_VISUALC_6_0_WORKAROUND
-       char *_Charalloc(size_type n) {
-               return (char *) MEM_mallocN(n, "STL MEM_Allocator VC6.0");
-       }
-#endif
        // NB: __n is permitted to be 0.  The C++ standard says nothing
        // about what the return value is when __n == 0.
        _Tp* allocate(size_type __n, const void* = 0) {
@@ -83,17 +71,10 @@ struct MEM_Allocator
                return __ret;
        }
 
-#ifndef MS_VISUALC_6_0_WORKAROUND
-       // __p is not permitted to be a null pointer.
-       void deallocate(pointer __p, size_type){ 
-               MEM_freeN(__p);
-       }
-#else
        // __p is not permitted to be a null pointer.
-       void deallocate(void* __p, size_type){ 
+       void deallocate(pointer __p, size_type) {
                MEM_freeN(__p);
        }
-#endif
 
        size_type max_size() const throw() { 
                return size_t(-1) / sizeof(_Tp); 
@@ -108,4 +89,4 @@ struct MEM_Allocator
        }
 };
 
-#endif
+#endif // __MEM_ALLOCATOR_H__