Use allocate_shared

This commit is contained in:
Jackie Kay 2015-10-23 11:41:45 -07:00
parent ea21d9263a
commit 4138e6be1d
2 changed files with 2 additions and 9 deletions

View file

@ -58,10 +58,7 @@ public:
// \return Shared pointer to the new message. // \return Shared pointer to the new message.
virtual std::shared_ptr<MessageT> borrow_message() virtual std::shared_ptr<MessageT> borrow_message()
{ {
auto ptr = MessageAllocTraits::allocate(*message_allocator_.get(), 1); return std::allocate_shared<MessageT, MessageAlloc>(*message_allocator_.get());
MessageAllocTraits::construct(*message_allocator_.get(), ptr);
return std::shared_ptr<MessageT>(ptr, message_deleter_);
//return std::allocate_shared<MessageT, typename MessageAlloc::allocator_type>(*message_allocator_);
} }
/// Release ownership of the message, which will deallocate it if it has no more owners. /// Release ownership of the message, which will deallocate it if it has no more owners.

View file

@ -137,10 +137,7 @@ public:
// \return Shared pointer to the fresh executable. // \return Shared pointer to the fresh executable.
virtual executor::AnyExecutable::SharedPtr instantiate_next_executable() virtual executor::AnyExecutable::SharedPtr instantiate_next_executable()
{ {
//return std::make_shared<executor::AnyExecutable>(); return std::allocate_shared<executor::AnyExecutable>(*executable_allocator_.get());
auto ptr = ExecAllocTraits::allocate(*executable_allocator_.get(), 1);
ExecAllocTraits::construct(*executable_allocator_.get(), ptr);
return std::shared_ptr<executor::AnyExecutable>(ptr, executable_deleter_);
} }
/// Implementation of a general-purpose allocation function. /// Implementation of a general-purpose allocation function.
@ -190,7 +187,6 @@ public:
private: private:
std::shared_ptr<ExecAlloc> executable_allocator_; std::shared_ptr<ExecAlloc> executable_allocator_;
ExecDeleter executable_deleter_;
std::shared_ptr<VoidAlloc> allocator_; std::shared_ptr<VoidAlloc> allocator_;
}; };