Skip to content

Commit 90e8d3e

Browse files
author
Aditya Srivastava
committed
style(windows): use std::byte for mouse button state
Address static analysis findings: test the optional with has_value() and hold the HID button bitmask as std::byte rather than a raw integer.
1 parent e9e0bc1 commit 90e8d3e

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

src/platform/windows/windows_backend.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,16 +1645,12 @@ namespace lvh::detail {
16451645
*/
16461646
OperationStatus submit_button(const MouseEvent &event) {
16471647
const auto bit = hid_mouse_button_bit(event.button);
1648-
if (!bit) {
1648+
if (!bit.has_value()) {
16491649
return OperationStatus::success();
16501650
}
16511651

1652-
const auto mask = static_cast<std::uint8_t>(1U << *bit);
1653-
if (event.pressed) {
1654-
buttons_ = static_cast<std::uint8_t>(buttons_ | mask);
1655-
} else {
1656-
buttons_ = static_cast<std::uint8_t>(buttons_ & ~mask);
1657-
}
1652+
const auto mask = std::byte {1} << *bit;
1653+
buttons_ = event.pressed ? (buttons_ | mask) : (buttons_ & ~mask);
16581654

16591655
return emit(0, 0, 0, 0);
16601656
}
@@ -1670,7 +1666,7 @@ namespace lvh::detail {
16701666
*/
16711667
OperationStatus emit(std::int16_t x, std::int16_t y, std::int8_t wheel, std::int8_t pan) {
16721668
std::vector<std::uint8_t> report(mouse_input_report_size, 0U);
1673-
report[0] = buttons_;
1669+
report[0] = std::to_integer<std::uint8_t>(buttons_);
16741670
report[1] = static_cast<std::uint8_t>(static_cast<std::uint16_t>(x) & 0xFFU);
16751671
report[2] = static_cast<std::uint8_t>((static_cast<std::uint16_t>(x) >> 8U) & 0xFFU);
16761672
report[3] = static_cast<std::uint8_t>(static_cast<std::uint16_t>(y) & 0xFFU);
@@ -1683,7 +1679,7 @@ namespace lvh::detail {
16831679
std::shared_ptr<WindowsBackendContext> context_;
16841680
std::shared_ptr<WindowsGamepadState> state_;
16851681
WindowsMouse fallback_;
1686-
std::uint8_t buttons_ = 0U;
1682+
std::byte buttons_ {};
16871683
int vertical_scroll_remainder_ = 0;
16881684
int horizontal_scroll_remainder_ = 0;
16891685
bool open_ = true;

0 commit comments

Comments
 (0)