MouseState._pressedButtons not return to MemoryPool
- Dominant language
- C#
- Stars
- 5.2k
- Forks
- 477
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 2
Description
version 2.22
```csharp
internal MouseState(IMouse mouse, MemoryPool pool)
{
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Expected I4, but got Unknown
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
Name = ((IInputDevice)mouse).Name;
Index = ((IInputDevice)mouse).Index;
IsConnected = ((IInputDevice)mouse).IsConnected;
IReadOnlyList supportedButtons = mouse.SupportedButtons;
_buttonCount = supportedButtons.Count;
_buttons = pool.Rent(_buttonCount * 4);
_pressedButtons = pool.Rent(_buttonCount * 4);
_pressedButtonCount = _buttonCount;
Span supportedButtons2 = GetSupportedButtons();
Span pressedButtons = GetPressedButtons();
_pressedButtonCount = 0;
for (int i = 0; i < _buttonCount; i++)
{
supportedButtons2[i] = (MouseButton)(int)supportedButtons[i];
if (mouse.IsButtonPressed(supportedButtons2[i]))
{
pressedButtons[_pressedButtonCount++] = supportedButtons2[i];
}
}
using (_pressedButtons)
{
Span pressedButtons2 = GetPressedButtons();
_pressedButtons = pool.Rent(_pressedButtonCount * 4);
pressedButtons = GetPressedButtons();
pressedButtons2.CopyTo(pressedButtons);
IReadOnlyList scrollWheels = mouse.ScrollWheels;
_scrollWheelCount = scrollWheels.Count;
_scrollWheels = pool.Rent(_scrollWheelCount * Unsafe.SizeOf());
Span scrollWheels2 = GetScrollWheels();
for (int j = 0; j < _scrollWheelCount; j++)
{
scrollWheels2[j] = scrollWheels[j];
}
Position = mouse.Position;
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.