Skip to content

Commit 8449e37

Browse files
committed
Bug 1906461 - Make more of the LogicalGeometry impl dependent on Clone versus Copy r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D215843
1 parent ac65a12 commit 8449e37

File tree

1 file changed

+39
-39
lines changed

1 file changed

+39
-39
lines changed

style/logical_geometry.rs

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -480,14 +480,14 @@ impl<T> LogicalSize<T> {
480480
}
481481
}
482482

483-
impl<T: Copy> LogicalSize<T> {
483+
impl<T: Clone> LogicalSize<T> {
484484
#[inline]
485485
pub fn width(&self, mode: WritingMode) -> T {
486486
self.debug_writing_mode.check(mode);
487487
if mode.is_vertical() {
488-
self.block
488+
self.block.clone()
489489
} else {
490-
self.inline
490+
self.inline.clone()
491491
}
492492
}
493493

@@ -505,9 +505,9 @@ impl<T: Copy> LogicalSize<T> {
505505
pub fn height(&self, mode: WritingMode) -> T {
506506
self.debug_writing_mode.check(mode);
507507
if mode.is_vertical() {
508-
self.inline
508+
self.inline.clone()
509509
} else {
510-
self.block
510+
self.block.clone()
511511
}
512512
}
513513

@@ -525,17 +525,17 @@ impl<T: Copy> LogicalSize<T> {
525525
pub fn to_physical(&self, mode: WritingMode) -> Size2D<T> {
526526
self.debug_writing_mode.check(mode);
527527
if mode.is_vertical() {
528-
Size2D::new(self.block, self.inline)
528+
Size2D::new(self.block.clone(), self.inline.clone())
529529
} else {
530-
Size2D::new(self.inline, self.block)
530+
Size2D::new(self.inline.clone(), self.block.clone())
531531
}
532532
}
533533

534534
#[inline]
535535
pub fn convert(&self, mode_from: WritingMode, mode_to: WritingMode) -> LogicalSize<T> {
536536
if mode_from == mode_to {
537537
self.debug_writing_mode.check(mode_from);
538-
*self
538+
self.clone()
539539
} else {
540540
LogicalSize::from_physical(mode_to, self.to_physical(mode_from))
541541
}
@@ -908,23 +908,23 @@ impl<T> LogicalMargin<T> {
908908
}
909909
}
910910

911-
impl<T: Copy> LogicalMargin<T> {
911+
impl<T: Clone> LogicalMargin<T> {
912912
#[inline]
913913
pub fn new_all_same(mode: WritingMode, value: T) -> LogicalMargin<T> {
914-
LogicalMargin::new(mode, value, value, value, value)
914+
LogicalMargin::new(mode, value.clone(), value.clone(), value.clone(), value)
915915
}
916916

917917
#[inline]
918918
pub fn top(&self, mode: WritingMode) -> T {
919919
self.debug_writing_mode.check(mode);
920920
if mode.is_vertical() {
921921
if mode.is_inline_tb() {
922-
self.inline_start
922+
self.inline_start.clone()
923923
} else {
924-
self.inline_end
924+
self.inline_end.clone()
925925
}
926926
} else {
927-
self.block_start
927+
self.block_start.clone()
928928
}
929929
}
930930

@@ -947,15 +947,15 @@ impl<T: Copy> LogicalMargin<T> {
947947
self.debug_writing_mode.check(mode);
948948
if mode.is_vertical() {
949949
if mode.is_vertical_lr() {
950-
self.block_end
950+
self.block_end.clone()
951951
} else {
952-
self.block_start
952+
self.block_start.clone()
953953
}
954954
} else {
955955
if mode.is_bidi_ltr() {
956-
self.inline_end
956+
self.inline_end.clone()
957957
} else {
958-
self.inline_start
958+
self.inline_start.clone()
959959
}
960960
}
961961
}
@@ -983,12 +983,12 @@ impl<T: Copy> LogicalMargin<T> {
983983
self.debug_writing_mode.check(mode);
984984
if mode.is_vertical() {
985985
if mode.is_inline_tb() {
986-
self.inline_end
986+
self.inline_end.clone()
987987
} else {
988-
self.inline_start
988+
self.inline_start.clone()
989989
}
990990
} else {
991-
self.block_end
991+
self.block_end.clone()
992992
}
993993
}
994994

@@ -1011,15 +1011,15 @@ impl<T: Copy> LogicalMargin<T> {
10111011
self.debug_writing_mode.check(mode);
10121012
if mode.is_vertical() {
10131013
if mode.is_vertical_lr() {
1014-
self.block_start
1014+
self.block_start.clone()
10151015
} else {
1016-
self.block_end
1016+
self.block_end.clone()
10171017
}
10181018
} else {
10191019
if mode.is_bidi_ltr() {
1020-
self.inline_start
1020+
self.inline_start.clone()
10211021
} else {
1022-
self.inline_end
1022+
self.inline_end.clone()
10231023
}
10241024
}
10251025
}
@@ -1051,28 +1051,28 @@ impl<T: Copy> LogicalMargin<T> {
10511051
let left;
10521052
if mode.is_vertical() {
10531053
if mode.is_vertical_lr() {
1054-
left = self.block_start;
1055-
right = self.block_end;
1054+
left = self.block_start.clone();
1055+
right = self.block_end.clone();
10561056
} else {
1057-
right = self.block_start;
1058-
left = self.block_end;
1057+
right = self.block_start.clone();
1058+
left = self.block_end.clone();
10591059
}
10601060
if mode.is_inline_tb() {
1061-
top = self.inline_start;
1062-
bottom = self.inline_end;
1061+
top = self.inline_start.clone();
1062+
bottom = self.inline_end.clone();
10631063
} else {
1064-
bottom = self.inline_start;
1065-
top = self.inline_end;
1064+
bottom = self.inline_start.clone();
1065+
top = self.inline_end.clone();
10661066
}
10671067
} else {
1068-
top = self.block_start;
1069-
bottom = self.block_end;
1068+
top = self.block_start.clone();
1069+
bottom = self.block_end.clone();
10701070
if mode.is_bidi_ltr() {
1071-
left = self.inline_start;
1072-
right = self.inline_end;
1071+
left = self.inline_start.clone();
1072+
right = self.inline_end.clone();
10731073
} else {
1074-
right = self.inline_start;
1075-
left = self.inline_end;
1074+
right = self.inline_start.clone();
1075+
left = self.inline_end.clone();
10761076
}
10771077
}
10781078
SideOffsets2D::new(top, right, bottom, left)
@@ -1082,7 +1082,7 @@ impl<T: Copy> LogicalMargin<T> {
10821082
pub fn convert(&self, mode_from: WritingMode, mode_to: WritingMode) -> LogicalMargin<T> {
10831083
if mode_from == mode_to {
10841084
self.debug_writing_mode.check(mode_from);
1085-
*self
1085+
self.clone()
10861086
} else {
10871087
LogicalMargin::from_physical(mode_to, self.to_physical(mode_from))
10881088
}

0 commit comments

Comments
 (0)