void ximpl_core::fastformat_impl_handlers_uninit(void* token) { FASTFORMAT_CONTRACT_ENFORCE_PRECONDITION_STATE_INTERNAL(NULL != token, "FastFormat error handlers have not been initialised"); defectHandlers_context_t* ctxt = static_cast<defectHandlers_context_t*>(token); delete ctxt; }
void ximpl_core::fastformat_impl_replacements_uninit(void* token) { FASTFORMAT_COVER_MARK_ENTRY(); FASTFORMAT_CONTRACT_ENFORCE_PRECONDITION_STATE_INTERNAL(NULL != token, "token must not be null"); delete static_cast<replacements_context_t_*>(token); }
inline size_t concat_slices(B& buff, size_t numResults, ff_string_slice_t const* results) { ff_char_t* p = &buff[0]; size_t total = 0; { for(size_t i = 0; i != numResults; ++i, ++results) { FASTFORMAT_CONTRACT_ENFORCE_PRECONDITION_STATE_INTERNAL(total + results->len <= buff.size(), "insufficient space in buffer to write the results"); STLSOFT_SUPPRESS_UNUSED(total); ::memcpy(p, results->ptr, results->len * sizeof(ff_char_t)); p += results->len; total += results->len; }} return total; }
int ximpl_core::fastformat_impl_replacements_init(void** ptoken) { FASTFORMAT_CONTRACT_ENFORCE_PRECONDITION_STATE_INTERNAL(NULL != ptoken, "token pointer must not be null"); FASTFORMAT_COVER_MARK_ENTRY(); try { FASTFORMAT_COVER_MARK_ENTRY(); replacements_context_t_* ctxt = new replacements_context_t_(); if(NULL == ctxt) { FASTFORMAT_COVER_MARK_ENTRY(); return FASTFORMAT_INIT_RC_OUT_OF_MEMORY; } *ptoken = ctxt; return FASTFORMAT_INIT_RC_SUCCESS; } catch(std::bad_alloc&) { FASTFORMAT_COVER_MARK_ENTRY(); return FASTFORMAT_INIT_RC_OUT_OF_MEMORY; } catch(std::exception&) { FASTFORMAT_COVER_MARK_ENTRY(); return FASTFORMAT_INIT_RC_UNSPECIFIED_EXCEPTION; } catch(...) { FASTFORMAT_COVER_MARK_ENTRY(); return FASTFORMAT_INIT_RC_UNSPECIFIED_ERROR; } }