diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/ManipulationSequence.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/ManipulationSequence.cs
index 6fa348ae4a4..63f7fd5987d 100644
--- a/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/ManipulationSequence.cs
+++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/ManipulationSequence.cs
@@ -999,7 +999,7 @@ private void InitializeManipulationState(Int64 timestamp)
/// the new expansion
/// the new orientation
/// the time of the new values
- private void OverwriteManipulationState(PointF position, float scale, float expansion, float orientation, Int64 timestamp)
+ private void OverwriteManipulationState(in PointF position, float scale, float expansion, float orientation, Int64 timestamp)
{
this.currentManipulationState = new ManipulationState(position, scale, expansion, orientation, timestamp);
#if DEBUG
@@ -1033,7 +1033,7 @@ private PointF GetAveragePoint()
///
/// the common point of reference
/// manipulation settings
- private void SetVectorsFromPoint(PointF referenceOrigin, ISettings settings)
+ private void SetVectorsFromPoint(in PointF referenceOrigin, ISettings settings)
{
Debug.Assert(this.manipulatorStates != null && this.manipulatorStates.Count > 0);
@@ -1549,7 +1549,7 @@ private struct ManipulationState
public readonly float Orientation;
public Int64 Timestamp;
- public ManipulationState(PointF position, float scale, float expansion, float orientation, Int64 timestamp)
+ public ManipulationState(in PointF position, float scale, float expansion, float orientation, Int64 timestamp)
{
Debug.Assert(!float.IsNaN(position.X) && !float.IsNaN(position.Y));
Debug.Assert(!float.IsInfinity(position.Y) && !float.IsInfinity(position.Y));
@@ -1589,4 +1589,4 @@ private enum ProcessorState
#endregion Private Classes
}
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/PointF.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/PointF.cs
index 6b6f2ca4d31..c8230d99770 100644
--- a/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/PointF.cs
+++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Input.Manipulations/System/Windows/Input/Manipulations/PointF.cs
@@ -13,10 +13,10 @@ namespace System.Windows.Input.Manipulations
/// two floats everywhere, but I just couldn't take it any more. A point class is just
/// too nice a thing.
///
- internal struct PointF
+ internal readonly struct PointF
{
- private float x;
- private float y;
+ private readonly float x;
+ private readonly float y;
///
/// Create a basic point structure
@@ -36,7 +36,7 @@ public PointF(float x, float y)
/// The point to convert.
/// A VectorF structure with an X value equal to this point's X value
/// and a Y value equal to this point's Y value.
- public static explicit operator VectorF(PointF point)
+ public static explicit operator VectorF(in PointF point)
{
return new VectorF(point.x, point.y);
}
@@ -47,7 +47,7 @@ public static explicit operator VectorF(PointF point)
///
///
///
- public static bool operator !=(PointF left, PointF right)
+ public static bool operator !=(in PointF left, in PointF right)
{
return left.X != right.X || left.Y != right.Y;
}
@@ -61,7 +61,7 @@ public static explicit operator VectorF(PointF point)
///
///
///
- public static bool operator ==(PointF left, PointF right)
+ public static bool operator ==(in PointF left, in PointF right)
{
return left.X == right.X && left.Y == right.Y;
}
@@ -73,7 +73,7 @@ public static explicit operator VectorF(PointF point)
/// The point to translate.
/// The amount by which to translate the point.
/// The result of translating the specified point by the specified vector.
- public static PointF operator +(PointF pt, VectorF offset)
+ public static PointF operator +(in PointF pt, VectorF offset)
{
return new PointF(pt.X + offset.X, pt.Y + offset.Y);
}
@@ -85,7 +85,7 @@ public static explicit operator VectorF(PointF point)
/// The point from which point2 is subtracted.
/// The point to subtract from point1.
/// The difference between point1 and point2.
- public static VectorF operator -(PointF point1, PointF point2)
+ public static VectorF operator -(in PointF point1, in PointF point2)
{
return new VectorF(point1.x - point2.x, point1.y - point2.y);
}
@@ -97,7 +97,7 @@ public static explicit operator VectorF(PointF point)
/// The point from which vector is subtracted.
/// The vector to subtract from point
/// The difference between point and vector.
- public static PointF operator -(PointF point, VectorF vector)
+ public static PointF operator -(in PointF point, VectorF vector)
{
return new PointF(point.x - vector.X, point.y - vector.Y);
}