Skip to content

Commit d9f8c7f

Browse files
committed
Fix int overflow in circular dead zone computation. Fixes #1.
1 parent 168cd9e commit d9f8c7f

File tree

6 files changed

+2
-19
lines changed

6 files changed

+2
-19
lines changed

Binaries/XInputDemo.exe

0 Bytes
Binary file not shown.

Binaries/XInputDotNetPure.dll

0 Bytes
Binary file not shown.

Binaries/XInputInterface.dll

0 Bytes
Binary file not shown.

Binaries/XInputReporter.exe

0 Bytes
Binary file not shown.

XInputDotNetPure/Utils.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ private static GamePadThumbSticks.StickValue ApplyStickDeadZone(short valueX, sh
3737
{
3838
if (deadZoneMode == GamePadDeadZone.Circular)
3939
{
40-
float distanceFromCenter = (float)Math.Sqrt(valueX * valueX + valueY * valueY);
40+
// Cast to long to avoid int overflow if valueX and valueY are both 32768, which would result in a negative number and Sqrt returns NaN
41+
float distanceFromCenter = (float)Math.Sqrt((long)valueX * (long)valueX + (long)valueY * (long)valueY);
4142
float coefficient = ApplyDeadZone(distanceFromCenter, short.MaxValue, deadZoneSize);
4243
coefficient = coefficient > 0.0f ? coefficient / distanceFromCenter : 0.0f;
4344
return new GamePadThumbSticks.StickValue(

XInputReporter/XInputReporter.csproj

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -75,42 +75,24 @@
7575
<DesignTimeSharedInput>True</DesignTimeSharedInput>
7676
</Compile>
7777
</ItemGroup>
78-
<ItemGroup>
79-
<None Include="Resources\background.jpg" />
80-
</ItemGroup>
8178
<ItemGroup>
8279
<None Include="Resources\connected_controller1.png" />
8380
</ItemGroup>
84-
<ItemGroup>
85-
<None Include="Resources\select_controller1.png" />
86-
</ItemGroup>
8781
<ItemGroup>
8882
<None Include="Resources\connected_controller2.png" />
8983
</ItemGroup>
90-
<ItemGroup>
91-
<None Include="Resources\select_controller2.png" />
92-
</ItemGroup>
9384
<ItemGroup>
9485
<None Include="Resources\connected_controller3.png" />
9586
</ItemGroup>
96-
<ItemGroup>
97-
<None Include="Resources\select_controller3.png" />
98-
</ItemGroup>
9987
<ItemGroup>
10088
<None Include="Resources\connected_controller4.png" />
10189
</ItemGroup>
102-
<ItemGroup>
103-
<None Include="Resources\select_controller4.png" />
104-
</ItemGroup>
10590
<ItemGroup>
10691
<ProjectReference Include="..\XInputDotNetPure\XInputDotNetPure.csproj">
10792
<Project>{952700CD-A384-43A4-AC4B-52256F83836E}</Project>
10893
<Name>XInputDotNetPure</Name>
10994
</ProjectReference>
11095
</ItemGroup>
111-
<ItemGroup>
112-
<None Include="Resources\con_top_persp1.png" />
113-
</ItemGroup>
11496
<ItemGroup>
11597
<None Include="Resources\background.png" />
11698
</ItemGroup>

0 commit comments

Comments
 (0)