diff --git a/include/rexy/string_base.tpp b/include/rexy/string_base.tpp index ed75cc9..92845f9 100644 --- a/include/rexy/string_base.tpp +++ b/include/rexy/string_base.tpp @@ -139,8 +139,10 @@ namespace rexy{ if(newsize < m_cap) return false; string_intermediary tmp(newsize); - memcpy(tmp.get(), m_data, m_length); - tmp[m_length] = 0; + if(m_data){ + memcpy(tmp.get(), m_data, m_length); + tmp[m_length] = 0; + } *this = std::move(tmp); return true; } @@ -152,7 +154,8 @@ namespace rexy{ m_data[m_length] = 0; }else{ string_intermediary tmp(detail::max(m_length + len, m_cap*2)); - memcpy(tmp.m_data, m_data, m_length); + if(m_data) + memcpy(tmp.m_data, m_data, m_length); memcpy(tmp.m_data+m_length, data, len); tmp.m_length = len+m_length; tmp[m_length+len] = 0;