Skip to content

Commit

Permalink
[Analyzers][CPP] Turn on warning 4702 (microsoft#22285)
Browse files Browse the repository at this point in the history
* Turn on 4702
unreachable code

* fix warnings that didnt show locally

* add comments about disable warnings

* improve comments

* changes from comments

* fix from PR comments
  • Loading branch information
sosssego authored Dec 12, 2022
1 parent 6cbb094 commit e42bbaa
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 30 deletions.
2 changes: 1 addition & 1 deletion Cpp.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<ClCompile>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level4</WarningLevel>
<DisableSpecificWarnings>4679;4702;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<DisableSpecificWarnings>4679;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<DisableAnalyzeExternal >true</DisableAnalyzeExternal>
<ExternalWarningLevel>TurnOffAllWarnings</ExternalWarningLevel>
<ConformanceMode>false</ConformanceMode>
Expand Down
5 changes: 5 additions & 0 deletions src/common/Themes/theme_listener.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

#define HKEY_WINDOWS_THEME L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"

// disabling warning 4702 - unreachable code
// prevent the warning after the call off a infinite loop function
#pragma warning(push)
#pragma warning(disable : 4702)
DWORD WINAPI _checkTheme(LPVOID lpParam)
{
auto listener = (ThemeListener*)lpParam;
listener->CheckTheme();
return 0;
}
#pragma warning(pop)

void ThemeListener::AddChangedHandler(THEME_HANDLE handle)
{
Expand Down
5 changes: 5 additions & 0 deletions src/common/updating/updating.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ namespace updating
throw std::runtime_error("Release object doesn't have the required asset");
}

// disabling warning 4702 - unreachable code
// prevent the warning that may show up depend on the value of the constants (#defines)
#pragma warning(push)
#pragma warning(disable : 4702)
std::future<nonstd::expected<github_version_info, std::wstring>> get_github_version_info_async(const bool prerelease)
{
// If the current version starts with 0.0.*, it means we're on a local build from a farm and shouldn't check for updates.
Expand Down Expand Up @@ -126,6 +130,7 @@ namespace updating
}
co_return nonstd::make_unexpected(NETWORK_ERROR);
}
#pragma warning(pop)

std::filesystem::path get_pending_updates_path()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ class AlwaysOnTopModuleInterface : public PowertoyModuleIface
// These are the settings shown on the settings page along with their current values.
virtual bool get_config(wchar_t* buffer, int* buffer_size) override
{
return false;
HINSTANCE hinstance = reinterpret_cast<HINSTANCE>(&__ImageBase);

// Create a Settings object.
Expand Down
29 changes: 12 additions & 17 deletions src/modules/fancyzones/FancyZonesLib/FancyZones.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ struct FancyZones : public winrt::implements<FancyZones, IFancyZones, IFancyZone
void RegisterVirtualDesktopUpdates() noexcept;

void UpdateHotkey(int hotkeyId, const PowerToysSettings::HotkeyObject& hotkeyObject, bool enable) noexcept;

std::pair<std::shared_ptr<WorkArea>, ZoneIndexSet> GetAppZoneHistoryInfo(HWND window, HMONITOR monitor, const std::unordered_map<HMONITOR, std::shared_ptr<WorkArea>>& workAreaMap) noexcept;
void MoveWindowIntoZone(HWND window, std::shared_ptr<WorkArea> workArea, const ZoneIndexSet& zoneIndexSet) noexcept;
bool MoveToAppLastZone(HWND window, HMONITOR active, HMONITOR primary) noexcept;
Expand Down Expand Up @@ -333,15 +333,15 @@ std::pair<std::shared_ptr<WorkArea>, ZoneIndexSet> FancyZones::GetAppZoneHistory
}
}
}

return std::pair<std::shared_ptr<WorkArea>, ZoneIndexSet>{ nullptr, {} };
}

void FancyZones::MoveWindowIntoZone(HWND window, std::shared_ptr<WorkArea> workArea, const ZoneIndexSet& zoneIndexSet) noexcept
{
if (workArea)
{
Trace::FancyZones::SnapNewWindowIntoZone(workArea->GetLayout().get(), workArea->GetLayoutWindows().get());
Trace::FancyZones::SnapNewWindowIntoZone(workArea->GetLayout().get(), workArea->GetLayoutWindows().get());
}
m_windowMoveHandler.MoveWindowIntoZoneByIndexSet(window, zoneIndexSet, workArea);
AppZoneHistory::instance().UpdateProcessIdToHandleMap(window, workArea->UniqueId());
Expand Down Expand Up @@ -413,7 +413,6 @@ void FancyZones::WindowCreated(HWND window) noexcept
{
return;
}


HMONITOR primary = MonitorFromWindow(nullptr, MONITOR_DEFAULTTOPRIMARY);
HMONITOR active = primary;
Expand Down Expand Up @@ -505,7 +504,7 @@ FancyZones::OnKeyDown(PKBDLLHOOKSTRUCT info) noexcept
void FancyZones::ToggleEditor() noexcept
{
_TRACER_;

if (m_terminateEditorEvent)
{
SetEvent(m_terminateEditorEvent.get());
Expand All @@ -519,7 +518,7 @@ void FancyZones::ToggleEditor() noexcept
Logger::error(L"Failed to save editor startup parameters");
return;
}

SHELLEXECUTEINFO sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI };
sei.lpFile = NonLocalizable::FZEditorExecutablePath;
Expand Down Expand Up @@ -553,7 +552,6 @@ void FancyZones::ToggleEditor() noexcept
waitForEditorThread.detach();
}


LRESULT FancyZones::WndProc(HWND window, UINT message, WPARAM wparam, LPARAM lparam) noexcept
{
switch (message)
Expand Down Expand Up @@ -714,7 +712,7 @@ void FancyZones::OnDisplayChange(DisplayChangeType changeType) noexcept

UpdateWorkAreas();

auto activeWorkAreas = m_workAreaHandler.GetWorkAreasByDesktopId(VirtualDesktop::instance().GetCurrentVirtualDesktopId());
auto activeWorkAreas = m_workAreaHandler.GetWorkAreasByDesktopId(VirtualDesktop::instance().GetCurrentVirtualDesktopId());
m_windowMoveHandler.AssignWindowsToZones(activeWorkAreas, FancyZonesSettings::settings().displayChange_moveWindows && changeType != DisplayChangeType::VirtualDesktop);
}

Expand All @@ -727,7 +725,7 @@ void FancyZones::AddWorkArea(HMONITOR monitor, const FancyZonesDataTypes::WorkAr
{
Logger::debug(L"Add new work area on virtual desktop {}", virtualDesktopIdStr.get());
}

FancyZonesDataTypes::WorkAreaId parentId{};
auto parentArea = m_workAreaHandler.GetWorkArea(VirtualDesktop::instance().GetPreviousVirtualDesktopId(), monitor);
if (parentArea)
Expand Down Expand Up @@ -1007,11 +1005,8 @@ bool FancyZones::OnSnapHotkey(DWORD vkCode) noexcept
{
return OnSnapHotkeyBasedOnPosition(window, vkCode);
}
else
{
return (vkCode == VK_LEFT || vkCode == VK_RIGHT) && OnSnapHotkeyBasedOnZoneNumber(window, vkCode);
}
return false;

return (vkCode == VK_LEFT || vkCode == VK_RIGHT) && OnSnapHotkeyBasedOnZoneNumber(window, vkCode);
}

bool FancyZones::ProcessDirectedSnapHotkey(HWND window, DWORD vkCode, bool cycle, std::shared_ptr<WorkArea> workArea) noexcept
Expand All @@ -1020,7 +1015,7 @@ bool FancyZones::ProcessDirectedSnapHotkey(HWND window, DWORD vkCode, bool cycle
if (GetAsyncKeyState(VK_MENU) & 0x8000)
{
bool result = m_windowMoveHandler.ExtendWindowByDirectionAndPosition(window, vkCode, workArea);
if (result)
if (result)
{
Trace::FancyZones::KeyboardSnapWindowToZone(workArea->GetLayout().get(), workArea->GetLayoutWindows().get());
}
Expand Down Expand Up @@ -1128,12 +1123,12 @@ void FancyZones::UpdateZoneSets() noexcept
bool FancyZones::ShouldProcessSnapHotkey(DWORD vkCode) noexcept
{
auto window = GetForegroundWindow();

if (!FancyZonesWindowProcessing::IsProcessable(window))
{
return false;
}

if (FancyZonesSettings::settings().overrideSnapHotkeys && FancyZonesWindowUtils::IsCandidateForZoning(window))
{
HMONITOR monitor = WorkAreaKeyFromWindow(window);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ class AppZoneHistory
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-app-zone-history.json";
#endif
#else
return saveFolderPath + L"\\app-zone-history.json";
#endif
}

void LoadData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,17 @@ class AppliedLayouts
{
public:
using TAppliedLayoutsMap = std::unordered_map<FancyZonesDataTypes::WorkAreaId, LayoutData>;

static AppliedLayouts& instance();

inline static std::wstring AppliedLayoutsFileName()
{
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-applied-layouts.json";
#endif
#else
return saveFolderPath + L"\\applied-layouts.json";
#endif
}

void LoadData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,9 @@ class CustomLayouts
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-custom-layouts.json";
#endif
#else
return saveFolderPath + L"\\custom-layouts.json";
#endif
}

void LoadData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

#include <FancyZonesLib/FancyZonesData/LayoutData.h>
#include <FancyZonesLib/ModuleConstants.h>

#include <common/SettingsAPI/FileWatcher.h>
#include <common/SettingsAPI/settings_helpers.h>

Expand Down Expand Up @@ -40,8 +39,9 @@ class DefaultLayouts
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-default-layouts.json";
#endif
#else
return saveFolderPath + L"\\default-layouts.json";
#endif
}

void LoadData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,13 @@ class LayoutHotkeys
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-layout-hotkeys.json";
#endif
#else
return saveFolderPath + L"\\layout-hotkeys.json";
#endif
}

void LoadData();
void LoadData();

std::optional<GUID> GetLayoutId(int key) const noexcept;
size_t GetHotkeysCount() const noexcept;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ class LayoutTemplates
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-layout-templates.json";
#endif
#else
return saveFolderPath + L"\\layout-templates.json";
#endif
}

void LoadData();
Expand Down
3 changes: 2 additions & 1 deletion src/modules/fancyzones/FancyZonesLib/Settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ class FancyZonesSettings
std::wstring saveFolderPath = PTSettingsHelper::get_module_save_folder_location(NonLocalizable::ModuleKey);
#if defined(UNIT_TESTS)
return saveFolderPath + L"\\test-settings.json";
#endif
#else
return saveFolderPath + L"\\settings.json";
#endif
}

void AddObserver(SettingsObserver& observer);
Expand Down

0 comments on commit e42bbaa

Please sign in to comment.