mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-11 05:25:32 +03:00
AK+Userland: Remove nullability feature for the ByteBuffer type
Nobody seems to use this particular feature, in fact there were some bugs which were uncovered by removing operator bool.
This commit is contained in:
parent
c4d0b0cd6b
commit
53d0150827
Notes:
sideshowbarker
2024-07-18 18:01:38 +09:00
Author: https://github.com/gunnarbeutner Commit: https://github.com/SerenityOS/serenity/commit/53d01508274 Pull-request: https://github.com/SerenityOS/serenity/pull/7151 Reviewed-by: https://github.com/alimpfard
@ -28,7 +28,6 @@ public:
|
|||||||
{
|
{
|
||||||
grow(other.size());
|
grow(other.size());
|
||||||
VERIFY(m_size == other.size());
|
VERIFY(m_size == other.size());
|
||||||
VERIFY(!m_is_null);
|
|
||||||
__builtin_memcpy(data(), other.data(), other.size());
|
__builtin_memcpy(data(), other.data(), other.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,10 +95,6 @@ public:
|
|||||||
|
|
||||||
bool operator!=(ByteBuffer const& other) const { return !(*this == other); }
|
bool operator!=(ByteBuffer const& other) const { return !(*this == other); }
|
||||||
|
|
||||||
operator bool() const { return !is_null(); }
|
|
||||||
bool operator!() const { return is_null(); }
|
|
||||||
[[nodiscard]] bool is_null() const { return m_is_null; }
|
|
||||||
|
|
||||||
[[nodiscard]] u8& operator[](size_t i)
|
[[nodiscard]] u8& operator[](size_t i)
|
||||||
{
|
{
|
||||||
VERIFY(i < m_size);
|
VERIFY(i < m_size);
|
||||||
@ -152,7 +147,6 @@ public:
|
|||||||
|
|
||||||
void grow(size_t new_size)
|
void grow(size_t new_size)
|
||||||
{
|
{
|
||||||
m_is_null = false;
|
|
||||||
if (new_size <= m_size)
|
if (new_size <= m_size)
|
||||||
return;
|
return;
|
||||||
if (new_size <= capacity()) {
|
if (new_size <= capacity()) {
|
||||||
@ -208,20 +202,17 @@ private:
|
|||||||
ByteBuffer(size_t size)
|
ByteBuffer(size_t size)
|
||||||
{
|
{
|
||||||
grow(size);
|
grow(size);
|
||||||
VERIFY(!m_is_null);
|
|
||||||
VERIFY(m_size == size);
|
VERIFY(m_size == size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void move_from(ByteBuffer&& other)
|
void move_from(ByteBuffer&& other)
|
||||||
{
|
{
|
||||||
m_is_null = other.m_is_null;
|
|
||||||
m_size = other.m_size;
|
m_size = other.m_size;
|
||||||
if (other.m_size > inline_capacity) {
|
if (other.m_size > inline_capacity) {
|
||||||
m_outline_buffer = other.m_outline_buffer;
|
m_outline_buffer = other.m_outline_buffer;
|
||||||
m_outline_capacity = other.m_outline_capacity;
|
m_outline_capacity = other.m_outline_capacity;
|
||||||
} else
|
} else
|
||||||
__builtin_memcpy(m_inline_buffer, other.m_inline_buffer, other.m_size);
|
__builtin_memcpy(m_inline_buffer, other.m_inline_buffer, other.m_size);
|
||||||
other.m_is_null = true;
|
|
||||||
other.m_size = 0;
|
other.m_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,7 +233,6 @@ private:
|
|||||||
size_t capacity() const { return is_inline() ? inline_capacity : m_outline_capacity; }
|
size_t capacity() const { return is_inline() ? inline_capacity : m_outline_capacity; }
|
||||||
|
|
||||||
size_t m_size { 0 };
|
size_t m_size { 0 };
|
||||||
bool m_is_null { true };
|
|
||||||
union {
|
union {
|
||||||
u8 m_inline_buffer[inline_capacity];
|
u8 m_inline_buffer[inline_capacity];
|
||||||
struct {
|
struct {
|
||||||
|
@ -240,8 +240,6 @@ public:
|
|||||||
template<typename BufferType>
|
template<typename BufferType>
|
||||||
[[nodiscard]] static String copy(const BufferType& buffer, ShouldChomp should_chomp = NoChomp)
|
[[nodiscard]] static String copy(const BufferType& buffer, ShouldChomp should_chomp = NoChomp)
|
||||||
{
|
{
|
||||||
if (buffer.is_null())
|
|
||||||
return {};
|
|
||||||
if (buffer.is_empty())
|
if (buffer.is_empty())
|
||||||
return empty();
|
return empty();
|
||||||
return String((const char*)buffer.data(), buffer.size(), should_chomp);
|
return String((const char*)buffer.data(), buffer.size(), should_chomp);
|
||||||
|
@ -150,8 +150,6 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: Vector::is_null() exists for the benefit of String::copy().
|
|
||||||
bool is_null() const { return false; }
|
|
||||||
bool is_empty() const { return size() == 0; }
|
bool is_empty() const { return size() == 0; }
|
||||||
ALWAYS_INLINE size_t size() const { return m_size; }
|
ALWAYS_INLINE size_t size() const { return m_size; }
|
||||||
size_t capacity() const { return m_capacity; }
|
size_t capacity() const { return m_capacity; }
|
||||||
|
@ -563,11 +563,6 @@ int HexEditor::find_and_highlight(ByteBuffer& needle, int start)
|
|||||||
if (m_buffer.is_empty())
|
if (m_buffer.is_empty())
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (needle.is_null()) {
|
|
||||||
dbgln("needle is null");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto raw_offset = memmem(m_buffer.data() + start, m_buffer.size(), needle.data(), needle.size());
|
auto raw_offset = memmem(m_buffer.data() + start, m_buffer.size(), needle.data(), needle.size());
|
||||||
if (raw_offset == NULL)
|
if (raw_offset == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -189,7 +189,7 @@ void HexEditorWidget::initialize_menubar(GUI::Menubar& menubar)
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
edit_menu.add_action(GUI::Action::create("Find &Next", { Mod_None, Key_F3 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/find-next.png"), [&](const GUI::Action&) {
|
edit_menu.add_action(GUI::Action::create("Find &Next", { Mod_None, Key_F3 }, Gfx::Bitmap::load_from_file("/res/icons/16x16/find-next.png"), [&](const GUI::Action&) {
|
||||||
if (m_search_text.is_empty() || m_search_buffer.is_empty() || m_search_buffer.is_null()) {
|
if (m_search_text.is_empty() || m_search_buffer.is_empty()) {
|
||||||
GUI::MessageBox::show(window(), "Nothing to search for", "Not found", GUI::MessageBox::Type::Warning);
|
GUI::MessageBox::show(window(), "Nothing to search for", "Not found", GUI::MessageBox::Type::Warning);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,6 @@ const char* IODevice::error_string() const
|
|||||||
int IODevice::read(u8* buffer, int length)
|
int IODevice::read(u8* buffer, int length)
|
||||||
{
|
{
|
||||||
auto read_buffer = read(length);
|
auto read_buffer = read(length);
|
||||||
if (read_buffer.is_null())
|
|
||||||
return 0;
|
|
||||||
memcpy(buffer, read_buffer.data(), length);
|
memcpy(buffer, read_buffer.data(), length);
|
||||||
return read_buffer.size();
|
return read_buffer.size();
|
||||||
}
|
}
|
||||||
@ -151,8 +149,6 @@ ByteBuffer IODevice::read_all()
|
|||||||
}
|
}
|
||||||
data.append((const u8*)read_buffer, nread);
|
data.append((const u8*)read_buffer, nread);
|
||||||
}
|
}
|
||||||
if (data.is_empty())
|
|
||||||
return {};
|
|
||||||
return ByteBuffer::copy(data.data(), data.size());
|
return ByteBuffer::copy(data.data(), data.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ void Job::on_socket_connected()
|
|||||||
auto read_size = 64 * KiB;
|
auto read_size = 64 * KiB;
|
||||||
|
|
||||||
auto payload = receive(read_size);
|
auto payload = receive(read_size);
|
||||||
if (!payload) {
|
if (payload.is_empty()) {
|
||||||
if (eof()) {
|
if (eof()) {
|
||||||
finish_up();
|
finish_up();
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
|
@ -283,7 +283,7 @@ void Job::on_socket_connected()
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto payload = receive(read_size);
|
auto payload = receive(read_size);
|
||||||
if (!payload) {
|
if (payload.is_empty()) {
|
||||||
if (eof()) {
|
if (eof()) {
|
||||||
finish_up();
|
finish_up();
|
||||||
return IterationDecision::Break;
|
return IterationDecision::Break;
|
||||||
|
@ -474,9 +474,7 @@ ssize_t TLSv12::handle_payload(ReadonlyBytes vbuffer)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Finished:
|
case Finished:
|
||||||
if (m_context.cached_handshake) {
|
m_context.cached_handshake.clear();
|
||||||
m_context.cached_handshake.clear();
|
|
||||||
}
|
|
||||||
if (m_context.handshake_messages[10] >= 1) {
|
if (m_context.handshake_messages[10] >= 1) {
|
||||||
dbgln("unexpected finished message");
|
dbgln("unexpected finished message");
|
||||||
payload_res = (i8)Error::UnexpectedMessage;
|
payload_res = (i8)Error::UnexpectedMessage;
|
||||||
|
@ -431,7 +431,7 @@ public:
|
|||||||
if (type != CSS::Selector::SimpleSelector::Type::Universal) {
|
if (type != CSS::Selector::SimpleSelector::Type::Universal) {
|
||||||
while (is_valid_selector_char(peek()))
|
while (is_valid_selector_char(peek()))
|
||||||
buffer.append(consume_one());
|
buffer.append(consume_one());
|
||||||
PARSE_VERIFY(!buffer.is_null());
|
PARSE_VERIFY(!buffer.is_empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto value = String::copy(buffer);
|
auto value = String::copy(buffer);
|
||||||
|
@ -42,7 +42,7 @@ public:
|
|||||||
bool is_failed() const { return m_failed; }
|
bool is_failed() const { return m_failed; }
|
||||||
const String& error() const { return m_error; }
|
const String& error() const { return m_error; }
|
||||||
|
|
||||||
bool has_encoded_data() const { return !m_encoded_data.is_null(); }
|
bool has_encoded_data() const { return !m_encoded_data.is_empty(); }
|
||||||
|
|
||||||
const URL& url() const { return m_request.url(); }
|
const URL& url() const { return m_request.url(); }
|
||||||
const ByteBuffer& encoded_data() const { return m_encoded_data; }
|
const ByteBuffer& encoded_data() const { return m_encoded_data; }
|
||||||
|
@ -47,7 +47,7 @@ void XMLHttpRequest::fire_progress_event(const String& event_name, u64 transmitt
|
|||||||
|
|
||||||
String XMLHttpRequest::response_text() const
|
String XMLHttpRequest::response_text() const
|
||||||
{
|
{
|
||||||
if (m_response_object.is_null())
|
if (m_response_object.is_empty())
|
||||||
return {};
|
return {};
|
||||||
return String::copy(m_response_object);
|
return String::copy(m_response_object);
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ int perform_copy(const String& source, const String& destination)
|
|||||||
while (true) {
|
while (true) {
|
||||||
print_progress();
|
print_progress();
|
||||||
auto buffer = source_file.read(65536);
|
auto buffer = source_file.read(65536);
|
||||||
if (buffer.is_null())
|
if (buffer.is_empty())
|
||||||
break;
|
break;
|
||||||
if (!destination_file.write(buffer)) {
|
if (!destination_file.write(buffer)) {
|
||||||
report_warning(String::formatted("Failed to write to destination file: {}", destination_file.error_string()));
|
report_warning(String::formatted("Failed to write to destination file: {}", destination_file.error_string()));
|
||||||
|
@ -168,7 +168,7 @@ Vector<DNSAnswer> MulticastDNS::lookup(const DNSName& name, DNSRecordType record
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto buffer = receive(1024);
|
auto buffer = receive(1024);
|
||||||
if (!buffer)
|
if (buffer.is_empty())
|
||||||
return {};
|
return {};
|
||||||
auto optional_packet = DNSPacket::from_raw_packet(buffer.data(), buffer.size());
|
auto optional_packet = DNSPacket::from_raw_packet(buffer.data(), buffer.size());
|
||||||
if (!optional_packet.has_value()) {
|
if (!optional_packet.has_value()) {
|
||||||
|
@ -41,7 +41,7 @@ void Client::start()
|
|||||||
{
|
{
|
||||||
m_socket->on_ready_to_read = [this] {
|
m_socket->on_ready_to_read = [this] {
|
||||||
auto raw_request = m_socket->read_all();
|
auto raw_request = m_socket->read_all();
|
||||||
if (raw_request.is_null()) {
|
if (raw_request.is_empty()) {
|
||||||
die();
|
die();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,8 @@ int parse_args(int argc, char** argv, Vector<String>& files, DuOption& du_option
|
|||||||
auto file = Core::File::construct(exclude_from);
|
auto file = Core::File::construct(exclude_from);
|
||||||
bool success = file->open(Core::OpenMode::ReadOnly);
|
bool success = file->open(Core::OpenMode::ReadOnly);
|
||||||
VERIFY(success);
|
VERIFY(success);
|
||||||
if (const auto buff = file->read_all()) {
|
const auto buff = file->read_all();
|
||||||
|
if (!buff.is_empty()) {
|
||||||
String patterns = String::copy(buff, Chomp);
|
String patterns = String::copy(buff, Chomp);
|
||||||
du_option.excluded_patterns.append(patterns.split('\n'));
|
du_option.excluded_patterns.append(patterns.split('\n'));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user