@@ -33,34 +33,34 @@ C4_NO_INLINE void endmsg()
3333 fflush (stderr); // NOLINT
3434}
3535
36- [[noreturn]] C4_NO_INLINE void error_basic_impl (const char * msg, size_t length , ErrorDataBasic const & errdata, void * /* user_data*/ )
36+ [[noreturn]] C4_NO_INLINE void error_basic_impl (csubstr msg, ErrorDataBasic const & errdata, void * /* user_data*/ )
3737{
38- err_basic_format (dump2stderr, msg, length, errdata);
38+ err_basic_format (dump2stderr, msg, errdata);
3939 endmsg ();
4040 #ifdef _RYML_WITH_EXCEPTIONS
41- throw BasicException (msg, length, errdata);
41+ throw BasicException (msg, errdata);
4242 #else
4343 abort (); // LCOV_EXCL_LINE
4444 #endif
4545}
4646
47- [[noreturn]] C4_NO_INLINE void error_parse_impl (const char * msg, size_t length , ErrorDataParse const & errdata, void * /* user_data*/ )
47+ [[noreturn]] C4_NO_INLINE void error_parse_impl (csubstr msg, ErrorDataParse const & errdata, void * /* user_data*/ )
4848{
49- err_parse_format (dump2stderr, msg, length, errdata);
49+ err_parse_format (dump2stderr, msg, errdata);
5050 endmsg ();
5151 #ifdef _RYML_WITH_EXCEPTIONS
52- throw ParseException (msg, length, errdata);
52+ throw ParseException (msg, errdata);
5353 #else
5454 abort (); // LCOV_EXCL_LINE
5555 #endif
5656}
5757
58- [[noreturn]] C4_NO_INLINE void error_visit_impl (const char * msg, size_t length , ErrorDataVisit const & errdata, void * /* user_data*/ )
58+ [[noreturn]] C4_NO_INLINE void error_visit_impl (csubstr msg, ErrorDataVisit const & errdata, void * /* user_data*/ )
5959{
60- err_visit_format (dump2stderr, msg, length, errdata);
60+ err_visit_format (dump2stderr, msg, errdata);
6161 endmsg ();
6262 #ifdef _RYML_WITH_EXCEPTIONS
63- throw VisitException (msg, length, errdata);
63+ throw VisitException (msg, errdata);
6464 #else
6565 abort (); // LCOV_EXCL_LINE
6666 #endif
@@ -70,10 +70,7 @@ void* allocate_impl(size_t length, void * /*hint*/, void * /*user_data*/)
7070{
7171 void *mem = ::malloc (length);
7272 if (mem == nullptr )
73- {
74- const char msg[] = " could not allocate memory" ; // LCOV_EXCL_LINE
75- error_basic_impl (msg, sizeof (msg)-1 , ErrorDataBasic{RYML_LOC_HERE ()}, nullptr ); // LCOV_EXCL_LINE
76- }
73+ error_basic_impl (" could not allocate memory" , ErrorDataBasic{RYML_LOC_HERE ()}, nullptr ); // LCOV_EXCL_LINE
7774 return mem;
7875}
7976
@@ -202,7 +199,7 @@ C4_NORETURN C4_NO_INLINE void err_basic(ErrorDataBasic const& errdata, const cha
202199C4_NORETURN C4_NO_INLINE void err_basic (Callbacks const & callbacks, ErrorDataBasic const & errdata, const char * msg_)
203200{
204201 csubstr msg = to_csubstr (msg_);
205- callbacks.m_error_basic (msg. str , msg. len , errdata, callbacks.m_user_data );
202+ callbacks.m_error_basic (msg, errdata, callbacks.m_user_data );
206203 abort (); // the call above should not return, so force it here in case it does // LCOV_EXCL_LINE
207204 C4_UNREACHABLE_AFTER_ERR ();
208205}
@@ -217,10 +214,10 @@ C4_NORETURN C4_NO_INLINE void err_parse(Callbacks const& callbacks, ErrorDataPar
217214{
218215 csubstr msg = to_csubstr (msg_);
219216 if (callbacks.m_error_parse )
220- callbacks.m_error_parse (msg. str , msg. len , errdata, callbacks.m_user_data );
217+ callbacks.m_error_parse (msg, errdata, callbacks.m_user_data );
221218 // fall to basic error if there is no parse handler set
222219 else if (callbacks.m_error_basic )
223- callbacks.m_error_basic (msg. str , msg. len , errdata.ymlloc , callbacks.m_user_data );
220+ callbacks.m_error_basic (msg, errdata.ymlloc , callbacks.m_user_data );
224221 abort (); // the call above should not return, so force it here in case it does // LCOV_EXCL_LINE
225222 C4_UNREACHABLE_AFTER_ERR ();
226223}
@@ -235,53 +232,53 @@ C4_NORETURN C4_NO_INLINE void err_visit(Callbacks const& callbacks, ErrorDataVis
235232{
236233 csubstr msg = to_csubstr (msg_);
237234 if (callbacks.m_error_visit )
238- callbacks.m_error_visit (msg. str , msg. len , errdata, callbacks.m_user_data );
235+ callbacks.m_error_visit (msg, errdata, callbacks.m_user_data );
239236 // fall to basic error if there is no visit handler set
240237 else if (callbacks.m_error_basic )
241- callbacks.m_error_basic (msg. str , msg. len , errdata.cpploc , callbacks.m_user_data );
238+ callbacks.m_error_basic (msg, errdata.cpploc , callbacks.m_user_data );
242239 abort (); // the call above should not return, so force it here in case it does // LCOV_EXCL_LINE
243240 C4_UNREACHABLE_AFTER_ERR ();
244241}
245242
246243
247244
248245#ifdef _RYML_WITH_EXCEPTIONS
249- BasicException::BasicException (const char * msg_, size_t len_ , ErrorDataBasic const & errdata_) noexcept
246+ BasicException::BasicException (csubstr msg_, ErrorDataBasic const & errdata_) noexcept
250247 : errdata_basic(errdata_)
251248 , msg()
252249{
253250 msg[0 ] = ' \0 ' ;
254- if (len_ )
251+ if (msg_. len )
255252 {
256- if (len_ >= sizeof (msg))
253+ if (msg_. len >= sizeof (msg))
257254 {
258255 static_assert (sizeof (msg) > 6u , " message buffer too small" );
259- len_ = sizeof (msg) - 6u ;
260- msg[len_ ] = ' [' ;
261- msg[len_ + 1u ] = ' .' ;
262- msg[len_ + 2u ] = ' .' ;
263- msg[len_ + 3u ] = ' .' ;
264- msg[len_ + 4u ] = ' ]' ;
265- msg[len_ + 5u ] = ' \0 ' ;
256+ msg_. len = sizeof (msg) - 6u ;
257+ msg[msg_. len ] = ' [' ;
258+ msg[msg_. len + 1u ] = ' .' ;
259+ msg[msg_. len + 2u ] = ' .' ;
260+ msg[msg_. len + 3u ] = ' .' ;
261+ msg[msg_. len + 4u ] = ' ]' ;
262+ msg[msg_. len + 5u ] = ' \0 ' ;
266263 }
267- memcpy (msg, msg_, len_ );
264+ memcpy (msg, msg_. str , msg_. len );
268265 }
269266}
270- ParseException::ParseException (const char * msg_, size_t len_ , ErrorDataParse const & errdata_) noexcept
271- : BasicException(msg_, len_, {errdata_.ymlloc })
267+ ParseException::ParseException (csubstr msg_, ErrorDataParse const & errdata_) noexcept
268+ : BasicException(msg_, {errdata_.ymlloc })
272269 , errdata_parse(errdata_)
273270{
274271}
275- VisitException::VisitException (const char * msg_, size_t len_ , ErrorDataVisit const & errdata_) noexcept
276- : BasicException(msg_, len_, {errdata_.cpploc })
272+ VisitException::VisitException (csubstr msg_, ErrorDataVisit const & errdata_) noexcept
273+ : BasicException(msg_, {errdata_.cpploc })
277274 , errdata_visit(errdata_)
278275{
279276}
280277#endif // _RYML_WITH_EXCEPTIONS
281278
282279
283280namespace detail {
284- csubstr _get_text_region (csubstr text, size_t pos, size_t num_lines_before, size_t num_lines_after)
281+ RYML_EXPORT csubstr _get_text_region (csubstr text, size_t pos, size_t num_lines_before, size_t num_lines_after)
285282{
286283 if (pos > text.len )
287284 return text.last (0 );
0 commit comments