diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-02-11 12:14:00 (GMT) |
commit | 0efa7c32aaf21a29b42b5926cc116007056843be (patch) | |
tree | 882f663a5dd0e65694bf6077b71086dd77fd7ff8 /3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp | |
parent | 1d20eabbc32274b491b4c2bedf73d19933d97bfd (diff) | |
download | swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.zip swift-contrib-0efa7c32aaf21a29b42b5926cc116007056843be.tar.bz2 |
Moved some modules into separate git modules.
Diffstat (limited to '3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp')
m--------- | 3rdParty/Boost | 0 | ||||
-rw-r--r-- | 3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp | 397 |
2 files changed, 0 insertions, 397 deletions
diff --git a/3rdParty/Boost b/3rdParty/Boost new file mode 160000 +Subproject 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79 diff --git a/3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp b/3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp deleted file mode 100644 index 9f8186f..0000000 --- a/3rdParty/Boost/boost/thread/win32/thread_heap_alloc.hpp +++ /dev/null @@ -1,397 +0,0 @@ -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// (C) Copyright 2007 Anthony Williams -#ifndef THREAD_HEAP_ALLOC_HPP -#define THREAD_HEAP_ALLOC_HPP -#include <new> -#include "thread_primitives.hpp" -#include <stdexcept> -#include <boost/assert.hpp> - -#if defined( BOOST_USE_WINDOWS_H ) -# include <windows.h> - -namespace boost -{ - namespace detail - { - namespace win32 - { - using ::GetProcessHeap; - using ::HeapAlloc; - using ::HeapFree; - } - } -} - -#else - -# ifdef HeapAlloc -# undef HeapAlloc -# endif - -namespace boost -{ - namespace detail - { - namespace win32 - { - extern "C" - { - __declspec(dllimport) handle __stdcall GetProcessHeap(); - __declspec(dllimport) void* __stdcall HeapAlloc(handle,unsigned long,ulong_ptr); - __declspec(dllimport) int __stdcall HeapFree(handle,unsigned long,void*); - } - } - } -} - -#endif - -#include <boost/config/abi_prefix.hpp> - -namespace boost -{ - namespace detail - { - inline BOOST_THREAD_DECL void* allocate_raw_heap_memory(unsigned size) - { - void* const heap_memory=detail::win32::HeapAlloc(detail::win32::GetProcessHeap(),0,size); - if(!heap_memory) - { - throw std::bad_alloc(); - } - return heap_memory; - } - - inline BOOST_THREAD_DECL void free_raw_heap_memory(void* heap_memory) - { - BOOST_VERIFY(detail::win32::HeapFree(detail::win32::GetProcessHeap(),0,heap_memory)!=0); - } - - template<typename T> - inline T* heap_new() - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - -#ifdef BOOST_HAS_RVALUE_REFS - template<typename T,typename A1> - inline T* heap_new(A1&& a1) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(static_cast<A1&&>(a1)); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - template<typename T,typename A1,typename A2> - inline T* heap_new(A1&& a1,A2&& a2) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(static_cast<A1&&>(a1),static_cast<A2&&>(a2)); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1&& a1,A2&& a2,A3&& a3) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(static_cast<A1&&>(a1),static_cast<A2&&>(a2), - static_cast<A3&&>(a3)); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1&& a1,A2&& a2,A3&& a3,A4&& a4) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(static_cast<A1&&>(a1),static_cast<A2&&>(a2), - static_cast<A3&&>(a3),static_cast<A4&&>(a4)); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } -#else - template<typename T,typename A1> - inline T* heap_new_impl(A1 a1) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(a1); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - - template<typename T,typename A1,typename A2> - inline T* heap_new_impl(A1 a1,A2 a2) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(a1,a2); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new_impl(A1 a1,A2 a2,A3 a3) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(a1,a2,a3); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new_impl(A1 a1,A2 a2,A3 a3,A4 a4) - { - void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); - try - { - T* const data=new (heap_memory) T(a1,a2,a3,a4); - return data; - } - catch(...) - { - free_raw_heap_memory(heap_memory); - throw; - } - } - - - template<typename T,typename A1> - inline T* heap_new(A1 const& a1) - { - return heap_new_impl<T,A1 const&>(a1); - } - template<typename T,typename A1> - inline T* heap_new(A1& a1) - { - return heap_new_impl<T,A1&>(a1); - } - - template<typename T,typename A1,typename A2> - inline T* heap_new(A1 const& a1,A2 const& a2) - { - return heap_new_impl<T,A1 const&,A2 const&>(a1,a2); - } - template<typename T,typename A1,typename A2> - inline T* heap_new(A1& a1,A2 const& a2) - { - return heap_new_impl<T,A1&,A2 const&>(a1,a2); - } - template<typename T,typename A1,typename A2> - inline T* heap_new(A1 const& a1,A2& a2) - { - return heap_new_impl<T,A1 const&,A2&>(a1,a2); - } - template<typename T,typename A1,typename A2> - inline T* heap_new(A1& a1,A2& a2) - { - return heap_new_impl<T,A1&,A2&>(a1,a2); - } - - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3) - { - return heap_new_impl<T,A1 const&,A2 const&,A3 const&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3) - { - return heap_new_impl<T,A1&,A2 const&,A3 const&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3) - { - return heap_new_impl<T,A1 const&,A2&,A3 const&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1& a1,A2& a2,A3 const& a3) - { - return heap_new_impl<T,A1&,A2&,A3 const&>(a1,a2,a3); - } - - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3) - { - return heap_new_impl<T,A1 const&,A2 const&,A3&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1& a1,A2 const& a2,A3& a3) - { - return heap_new_impl<T,A1&,A2 const&,A3&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1 const& a1,A2& a2,A3& a3) - { - return heap_new_impl<T,A1 const&,A2&,A3&>(a1,a2,a3); - } - template<typename T,typename A1,typename A2,typename A3> - inline T* heap_new(A1& a1,A2& a2,A3& a3) - { - return heap_new_impl<T,A1&,A2&,A3&>(a1,a2,a3); - } - - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4 const& a4) - { - return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4 const& a4) - { - return heap_new_impl<T,A1&,A2 const&,A3 const&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4 const& a4) - { - return heap_new_impl<T,A1 const&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4 const& a4) - { - return heap_new_impl<T,A1&,A2&,A3 const&,A4 const&>(a1,a2,a3,a4); - } - - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4 const& a4) - { - return heap_new_impl<T,A1 const&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4 const& a4) - { - return heap_new_impl<T,A1&,A2 const&,A3&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4 const& a4) - { - return heap_new_impl<T,A1 const&,A2&,A3&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2& a2,A3& a3,A4 const& a4) - { - return heap_new_impl<T,A1&,A2&,A3&,A4 const&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2 const& a2,A3 const& a3,A4& a4) - { - return heap_new_impl<T,A1 const&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2 const& a2,A3 const& a3,A4& a4) - { - return heap_new_impl<T,A1&,A2 const&,A3 const&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2& a2,A3 const& a3,A4& a4) - { - return heap_new_impl<T,A1 const&,A2&,A3 const&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2& a2,A3 const& a3,A4& a4) - { - return heap_new_impl<T,A1&,A2&,A3 const&,A4&>(a1,a2,a3,a4); - } - - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2 const& a2,A3& a3,A4& a4) - { - return heap_new_impl<T,A1 const&,A2 const&,A3&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2 const& a2,A3& a3,A4& a4) - { - return heap_new_impl<T,A1&,A2 const&,A3&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1 const& a1,A2& a2,A3& a3,A4& a4) - { - return heap_new_impl<T,A1 const&,A2&,A3&,A4&>(a1,a2,a3,a4); - } - template<typename T,typename A1,typename A2,typename A3,typename A4> - inline T* heap_new(A1& a1,A2& a2,A3& a3,A4& a4) - { - return heap_new_impl<T,A1&,A2&,A3&,A4&>(a1,a2,a3,a4); - } - -#endif - template<typename T> - inline void heap_delete(T* data) - { - data->~T(); - free_raw_heap_memory(data); - } - - template<typename T> - struct do_heap_delete - { - void operator()(T* data) const - { - detail::heap_delete(data); - } - }; - } -} - -#include <boost/config/abi_suffix.hpp> - - -#endif |