remove string_view from exported members of struct error

msvc doesn't like it
master
Daniel Kolesa 2021-03-31 01:43:29 +02:00
parent 2270d8e41f
commit 2312961cdc
1 changed files with 10 additions and 7 deletions

View File

@ -564,11 +564,12 @@ struct LIBCUBESCRIPT_EXPORT error {
error() = delete;
error(error const &) = delete;
error(error &&v):
p_errmsg(v.p_errmsg), p_stack(std::move(v.p_stack))
p_errbeg{v.p_errbeg}, p_errend{v.p_errend},
p_stack{std::move(v.p_stack)}
{}
std::string_view what() const {
return p_errmsg;
return std::string_view{p_errbeg, p_errend};
}
stack_state &get_stack() {
@ -585,19 +586,20 @@ struct LIBCUBESCRIPT_EXPORT error {
{}
error(thread_state &ts, std::string_view msg):
p_errmsg{}, p_stack{ts}
p_errbeg{}, p_errend{}, p_stack{ts}
{
char *sp;
char *buf = request_buf(ts, msg.size(), sp);
std::memcpy(buf, msg.data(), msg.size());
buf[msg.size()] = '\0';
p_errmsg = std::string_view{sp, buf + msg.size()};
p_errbeg = sp;
p_errend = buf + msg.size();
p_stack = save_stack(ts);
}
template<typename ...A>
error(thread_state &ts, std::string_view msg, A const &...args):
p_errmsg{}, p_stack{ts}
p_errbeg{}, p_errend{}, p_stack{ts}
{
std::size_t sz = msg.size() + 64;
char *buf, *sp;
@ -611,7 +613,8 @@ struct LIBCUBESCRIPT_EXPORT error {
}
sz = std::size_t(written);
}
p_errmsg = std::string_view{sp, buf + sz};
p_errbeg = sp;
p_errend = buf + sz;
p_stack = save_stack(ts);
}
@ -619,7 +622,7 @@ private:
stack_state save_stack(thread_state &ts);
char *request_buf(thread_state &ts, std::size_t bufs, char *&sp);
std::string_view p_errmsg;
char const *p_errbeg, *p_errend;
stack_state p_stack;
};