mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 07:08:10 +00:00
LibXML+LibWeb: Avoid implicit cast from StringView{}->DeprecatedString
This produces a (truly) null DeprecatedString, which is not expected to occur by CharacterData (where this string ends up). Simply pass an "empty" DeprecatedString manually instead.
This commit is contained in:
parent
356e58332c
commit
803ff81d4a
4 changed files with 19 additions and 13 deletions
|
@ -123,7 +123,7 @@ void XMLDocumentBuilder::element_end(const XML::Name& name)
|
||||||
m_current_node = m_current_node->parent_node();
|
m_current_node = m_current_node->parent_node();
|
||||||
}
|
}
|
||||||
|
|
||||||
void XMLDocumentBuilder::text(DeprecatedString const& data)
|
void XMLDocumentBuilder::text(StringView data)
|
||||||
{
|
{
|
||||||
if (m_has_error)
|
if (m_has_error)
|
||||||
return;
|
return;
|
||||||
|
@ -135,16 +135,22 @@ void XMLDocumentBuilder::text(DeprecatedString const& data)
|
||||||
text_node.set_data(text_builder.to_deprecated_string());
|
text_node.set_data(text_builder.to_deprecated_string());
|
||||||
text_builder.clear();
|
text_builder.clear();
|
||||||
} else {
|
} else {
|
||||||
auto node = m_document.create_text_node(data);
|
auto string = DeprecatedString::empty();
|
||||||
|
if (!data.is_null())
|
||||||
|
string = data.to_deprecated_string();
|
||||||
|
auto node = m_document.create_text_node(string);
|
||||||
MUST(m_current_node->append_child(node));
|
MUST(m_current_node->append_child(node));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void XMLDocumentBuilder::comment(DeprecatedString const& data)
|
void XMLDocumentBuilder::comment(StringView data)
|
||||||
{
|
{
|
||||||
if (m_has_error)
|
if (m_has_error)
|
||||||
return;
|
return;
|
||||||
MUST(m_document.append_child(m_document.create_comment(data)));
|
auto string = DeprecatedString::empty();
|
||||||
|
if (!data.is_null())
|
||||||
|
string = data.to_deprecated_string();
|
||||||
|
MUST(m_document.append_child(m_document.create_comment(string)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void XMLDocumentBuilder::document_end()
|
void XMLDocumentBuilder::document_end()
|
||||||
|
|
|
@ -32,8 +32,8 @@ private:
|
||||||
virtual void set_source(DeprecatedString) override;
|
virtual void set_source(DeprecatedString) override;
|
||||||
virtual void element_start(XML::Name const& name, HashMap<XML::Name, DeprecatedString> const& attributes) override;
|
virtual void element_start(XML::Name const& name, HashMap<XML::Name, DeprecatedString> const& attributes) override;
|
||||||
virtual void element_end(XML::Name const& name) override;
|
virtual void element_end(XML::Name const& name) override;
|
||||||
virtual void text(DeprecatedString const& data) override;
|
virtual void text(StringView data) override;
|
||||||
virtual void comment(DeprecatedString const& data) override;
|
virtual void comment(StringView data) override;
|
||||||
virtual void document_end() override;
|
virtual void document_end() override;
|
||||||
|
|
||||||
DOM::Document& m_document;
|
DOM::Document& m_document;
|
||||||
|
|
|
@ -78,7 +78,7 @@ void Parser::append_node(NonnullOwnPtr<Node> node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Parser::append_text(DeprecatedString text)
|
void Parser::append_text(StringView text)
|
||||||
{
|
{
|
||||||
if (m_listener) {
|
if (m_listener) {
|
||||||
m_listener->text(text);
|
m_listener->text(text);
|
||||||
|
@ -111,7 +111,7 @@ void Parser::append_text(DeprecatedString text)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Parser::append_comment(DeprecatedString text)
|
void Parser::append_comment(StringView text)
|
||||||
{
|
{
|
||||||
if (m_listener) {
|
if (m_listener) {
|
||||||
m_listener->comment(text);
|
m_listener->comment(text);
|
||||||
|
@ -125,7 +125,7 @@ void Parser::append_comment(DeprecatedString text)
|
||||||
|
|
||||||
m_entered_node->content.visit(
|
m_entered_node->content.visit(
|
||||||
[&](Node::Element& node) {
|
[&](Node::Element& node) {
|
||||||
node.children.append(make<Node>(Node::Comment { move(text) }));
|
node.children.append(make<Node>(Node::Comment { text }));
|
||||||
},
|
},
|
||||||
[&](auto&) {
|
[&](auto&) {
|
||||||
// Can't enter a text or comment node.
|
// Can't enter a text or comment node.
|
||||||
|
|
|
@ -34,8 +34,8 @@ struct Listener {
|
||||||
virtual void document_end() { }
|
virtual void document_end() { }
|
||||||
virtual void element_start(Name const&, HashMap<Name, DeprecatedString> const&) { }
|
virtual void element_start(Name const&, HashMap<Name, DeprecatedString> const&) { }
|
||||||
virtual void element_end(Name const&) { }
|
virtual void element_end(Name const&) { }
|
||||||
virtual void text(DeprecatedString const&) { }
|
virtual void text(StringView) { }
|
||||||
virtual void comment(DeprecatedString const&) { }
|
virtual void comment(StringView) { }
|
||||||
virtual void error(ParseError const&) { }
|
virtual void error(ParseError const&) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -73,8 +73,8 @@ private:
|
||||||
|
|
||||||
ErrorOr<void, ParseError> parse_internal();
|
ErrorOr<void, ParseError> parse_internal();
|
||||||
void append_node(NonnullOwnPtr<Node>);
|
void append_node(NonnullOwnPtr<Node>);
|
||||||
void append_text(DeprecatedString);
|
void append_text(StringView);
|
||||||
void append_comment(DeprecatedString);
|
void append_comment(StringView);
|
||||||
void enter_node(Node&);
|
void enter_node(Node&);
|
||||||
void leave_node();
|
void leave_node();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue