Crazy Eddie's GUI System  0.8.4
MemoryStdAllocator.h
00001 /***********************************************************************
00002         created:        14/10/2010
00003         author:         Martin Preisler
00004 
00005         purpose:        Implements the default "dummy" allocator
00006 *************************************************************************/
00007 /***************************************************************************
00008  *   Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
00009  *
00010  *   Permission is hereby granted, free of charge, to any person obtaining
00011  *   a copy of this software and associated documentation files (the
00012  *   "Software"), to deal in the Software without restriction, including
00013  *   without limitation the rights to use, copy, modify, merge, publish,
00014  *   distribute, sublicense, and/or sell copies of the Software, and to
00015  *   permit persons to whom the Software is furnished to do so, subject to
00016  *   the following conditions:
00017  *
00018  *   The above copyright notice and this permission notice shall be
00019  *   included in all copies or substantial portions of the Software.
00020  *
00021  *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
00022  *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00023  *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00024  *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
00025  *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
00026  *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
00027  *   OTHER DEALINGS IN THE SOFTWARE.
00028  ***************************************************************************/
00029 #ifndef _CEGUIMemoryStdAllocator_h_
00030 #define _CEGUIMemoryStdAllocator_h_
00031 
00032 #include <stdlib.h>
00033 #include <limits>
00034 
00035 namespace CEGUI
00036 {
00037 
00038 class CEGUIEXPORT StdAllocator
00039 {
00040 public:
00041         static inline void* allocateBytes(size_t count)
00042         {
00043         return malloc(count);
00044         }
00045 
00046         static inline void deallocateBytes(void* ptr)
00047         {
00048         free(ptr);
00049         }
00050 
00051     // !!! IF YOU GET AN ERROR HERE:
00052     // that says something like: "You can't call allocateBytes with 4 arguments",
00053     // you are using StdAllocator and trying to enable CEGUI_CUSTOM_ALLOCATORS_DEBUG, you
00054     // have to provide your own custom memory allocator if you want memory debugging.
00055 
00057         static inline size_t getMaxAllocationSize()
00058         {
00059                 return std::numeric_limits<size_t>::max();
00060         }
00061 };
00062 
00063 CEGUI_SET_DEFAULT_ALLOCATOR(StdAllocator)
00064 
00065 }
00066 
00067 #endif  // end of guard _CEGUIMemoryStdAllocator_h_
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends