1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef BOOST_JSON_DETAIL_IMPL_STACK_IPP
- #define BOOST_JSON_DETAIL_IMPL_STACK_IPP
- #include <boost/json/detail/stack.hpp>
- BOOST_JSON_NS_BEGIN
- namespace detail {
- stack::
- ~stack()
- {
- if(buf_)
- sp_->deallocate(
- buf_, cap_);
- }
- void
- stack::
- reserve(std::size_t n)
- {
- if(cap_ >= n)
- return;
- auto const buf = static_cast<
- char*>(sp_->allocate(n));
- if(buf_)
- {
- if(size_ > 0)
- std::memcpy(buf, buf_, size_);
- sp_->deallocate(buf_, cap_);
- }
- buf_ = buf;
- cap_ = n;
- }
- }
- BOOST_JSON_NS_END
- #endif
|