mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-28 13:43:45 +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());
|
||||
VERIFY(m_size == other.size());
|
||||
VERIFY(!m_is_null);
|
||||
__builtin_memcpy(data(), other.data(), other.size());
|
||||
}
|
||||
|
||||
@ -96,10 +95,6 @@ public:
|
||||
|
||||
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)
|
||||
{
|
||||
VERIFY(i < m_size);
|
||||
@ -152,7 +147,6 @@ public:
|
||||
|
||||
void grow(size_t new_size)
|
||||
{
|
||||
m_is_null = false;
|
||||
if (new_size <= m_size)
|
||||
return;
|
||||
if (new_size <= capacity()) {
|
||||
@ -208,20 +202,17 @@ private:
|
||||
ByteBuffer(size_t size)
|
||||
{
|
||||
grow(size);
|
||||
VERIFY(!m_is_null);
|
||||
VERIFY(m_size == size);
|
||||
}
|
||||
|
||||
void move_from(ByteBuffer&& other)
|
||||
{
|
||||
m_is_null = other.m_is_null;
|
||||
m_size = other.m_size;
|
||||
if (other.m_size > inline_capacity) {
|
||||
m_outline_buffer = other.m_outline_buffer;
|
||||
m_outline_capacity = other.m_outline_capacity;
|
||||
} else
|
||||
__builtin_memcpy(m_inline_buffer, other.m_inline_buffer, other.m_size);
|
||||
other.m_is_null = true;
|
||||
other.m_size = 0;
|
||||
}
|
||||
|
||||
@ -242,7 +233,6 @@ private:
|
||||
size_t capacity() const { return is_inline() ? inline_capacity : m_outline_capacity; }
|
||||
|
||||
size_t m_size { 0 };
|
||||
bool m_is_null { true };
|
||||
union {
|
||||
u8 m_inline_buffer[inline_capacity];
|
||||
struct {
|
||||
|
@ -240,8 +240,6 @@ public:
|
||||
template<typename BufferType>
|
||||
[[nodiscard]] static String copy(const BufferType& buffer, ShouldChomp should_chomp = NoChomp)
|
||||
{
|
||||
if (buffer.is_null())
|
||||
return {};
|
||||
if (buffer.is_empty())
|
||||
return empty();
|
||||
return String((const char*)buffer.data(), buffer.size(), should_chomp);
|
||||
|
@ -150,8 +150,6 @@ public:
|
||||
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; }
|
||||
ALWAYS_INLINE size_t size() const { return m_size; }
|
||||
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())
|
||||
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());
|
||||
if (raw_offset == NULL)
|
||||
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&) {
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
@ -33,8 +33,6 @@ const char* IODevice::error_string() const
|
||||
int IODevice::read(u8* buffer, int length)
|
||||
{
|
||||
auto read_buffer = read(length);
|
||||
if (read_buffer.is_null())
|
||||
return 0;
|
||||
memcpy(buffer, read_buffer.data(), length);
|
||||
return read_buffer.size();
|
||||
}
|
||||
@ -151,8 +149,6 @@ ByteBuffer IODevice::read_all()
|
||||
}
|
||||
data.append((const u8*)read_buffer, nread);
|
||||
}
|
||||
if (data.is_empty())
|
||||
return {};
|
||||
return ByteBuffer::copy(data.data(), data.size());
|
||||
}
|
||||
|
||||
|
@ -110,7 +110,7 @@ void Job::on_socket_connected()
|
||||
auto read_size = 64 * KiB;
|
||||
|
||||
auto payload = receive(read_size);
|
||||
if (!payload) {
|
||||
if (payload.is_empty()) {
|
||||
if (eof()) {
|
||||
finish_up();
|
||||
return IterationDecision::Break;
|
||||
|
@ -283,7 +283,7 @@ void Job::on_socket_connected()
|
||||
}
|
||||
|
||||
auto payload = receive(read_size);
|
||||
if (!payload) {
|
||||
if (payload.is_empty()) {
|
||||
if (eof()) {
|
||||
finish_up();
|
||||
return IterationDecision::Break;
|
||||
|
@ -474,9 +474,7 @@ ssize_t TLSv12::handle_payload(ReadonlyBytes vbuffer)
|
||||
}
|
||||
break;
|
||||
case Finished:
|
||||
if (m_context.cached_handshake) {
|
||||
m_context.cached_handshake.clear();
|
||||
}
|
||||
m_context.cached_handshake.clear();
|
||||
if (m_context.handshake_messages[10] >= 1) {
|
||||
dbgln("unexpected finished message");
|
||||
payload_res = (i8)Error::UnexpectedMessage;
|
||||
|
@ -431,7 +431,7 @@ public:
|
||||
if (type != CSS::Selector::SimpleSelector::Type::Universal) {
|
||||
while (is_valid_selector_char(peek()))
|
||||
buffer.append(consume_one());
|
||||
PARSE_VERIFY(!buffer.is_null());
|
||||
PARSE_VERIFY(!buffer.is_empty());
|
||||
}
|
||||
|
||||
auto value = String::copy(buffer);
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
bool is_failed() const { return m_failed; }
|
||||
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 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
|
||||
{
|
||||
if (m_response_object.is_null())
|
||||
if (m_response_object.is_empty())
|
||||
return {};
|
||||
return String::copy(m_response_object);
|
||||
}
|
||||
|
@ -143,7 +143,7 @@ int perform_copy(const String& source, const String& destination)
|
||||
while (true) {
|
||||
print_progress();
|
||||
auto buffer = source_file.read(65536);
|
||||
if (buffer.is_null())
|
||||
if (buffer.is_empty())
|
||||
break;
|
||||
if (!destination_file.write(buffer)) {
|
||||
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);
|
||||
if (!buffer)
|
||||
if (buffer.is_empty())
|
||||
return {};
|
||||
auto optional_packet = DNSPacket::from_raw_packet(buffer.data(), buffer.size());
|
||||
if (!optional_packet.has_value()) {
|
||||
|
@ -41,7 +41,7 @@ void Client::start()
|
||||
{
|
||||
m_socket->on_ready_to_read = [this] {
|
||||
auto raw_request = m_socket->read_all();
|
||||
if (raw_request.is_null()) {
|
||||
if (raw_request.is_empty()) {
|
||||
die();
|
||||
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);
|
||||
bool success = file->open(Core::OpenMode::ReadOnly);
|
||||
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);
|
||||
du_option.excluded_patterns.append(patterns.split('\n'));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user