From e1e913d33c13a50ceed5a7ea19439b1b3d4d8ced Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 31 Mar 2020 14:30:18 +0200 Subject: Make LayoutHTMLInputElementHelpers::value_for_layout return a cow --- components/script/dom/node.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/node.rs') diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index d92e3b6a364..b72dc6b695e 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1463,7 +1463,7 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { } if let Some(input) = self.downcast::() { - return unsafe { input.value_for_layout() }; + return input.value_for_layout().into_owned(); } if let Some(area) = self.downcast::() { -- cgit v1.2.3 From 00c5ec202ccde20eace5c867578262efa5b69844 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 31 Mar 2020 14:35:37 +0200 Subject: Make LayoutHTMLTextAreaElementHelpers::value_for_layout safe --- components/script/dom/node.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'components/script/dom/node.rs') diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index b72dc6b695e..425e29d45f3 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1467,7 +1467,7 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { } if let Some(area) = self.downcast::() { - return unsafe { area.value_for_layout() }; + return area.value_for_layout(); } panic!("not text!") -- cgit v1.2.3 From 409bd3d989c1877f8e0a5da92bd758dd20ac724b Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 31 Mar 2020 14:40:47 +0200 Subject: Make LayoutCharacterDataHelpers::data_for_layout be safe --- components/script/dom/node.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'components/script/dom/node.rs') diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 425e29d45f3..07b7d60cbe6 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1456,10 +1456,9 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { val } - #[allow(unsafe_code)] fn text_content(self) -> String { if let Some(text) = self.downcast::() { - return unsafe { text.upcast().data_for_layout().to_owned() }; + return text.upcast().data_for_layout().to_owned(); } if let Some(input) = self.downcast::() { -- cgit v1.2.3 From 6fe294fa5bab1b0ccd80d6dfb53be85adfaec4ad Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 31 Mar 2020 14:58:56 +0200 Subject: Make LayoutNodeHelpers::text_content return a cow --- components/script/dom/node.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'components/script/dom/node.rs') diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 07b7d60cbe6..251f6fcab18 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -87,7 +87,7 @@ use servo_arc::Arc; use servo_atoms::Atom; use servo_url::ServoUrl; use smallvec::SmallVec; -use std::borrow::ToOwned; +use std::borrow::Cow; use std::cell::{Cell, UnsafeCell}; use std::cmp; use std::default::Default; @@ -1326,7 +1326,7 @@ pub trait LayoutNodeHelpers<'dom> { unsafe fn init_style_and_layout_data(self, _: OpaqueStyleAndLayoutData); unsafe fn take_style_and_layout_data(self) -> OpaqueStyleAndLayoutData; - fn text_content(self) -> String; + fn text_content(self) -> Cow<'dom, str>; fn selection(self) -> Option>; fn image_url(self) -> Option; fn image_density(self) -> Option; @@ -1456,17 +1456,17 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> { val } - fn text_content(self) -> String { + fn text_content(self) -> Cow<'dom, str> { if let Some(text) = self.downcast::() { - return text.upcast().data_for_layout().to_owned(); + return text.upcast().data_for_layout().into(); } if let Some(input) = self.downcast::() { - return input.value_for_layout().into_owned(); + return input.value_for_layout(); } if let Some(area) = self.downcast::() { - return area.value_for_layout(); + return area.value_for_layout().into(); } panic!("not text!") -- cgit v1.2.3