Jacek Caban : devenum: Use switch statements for moniker type handling.
Module: wine Branch: master Commit: 4d2d6666dbc8f632759b79cb5b8986b67d3e9982 URL: https://gitlab.winehq.org/wine/wine/-/commit/4d2d6666dbc8f632759b79cb5b8986b... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Sat Dec 9 11:52:25 2023 +0100 devenum: Use switch statements for moniker type handling. Fixes -Wsometimes-uninitialized clang warnings by using DEFAULT_UNREACHABLE. --- dlls/devenum/mediacatenum.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/dlls/devenum/mediacatenum.c b/dlls/devenum/mediacatenum.c index 2d87709bea6..906d01b2057 100644 --- a/dlls/devenum/mediacatenum.c +++ b/dlls/devenum/mediacatenum.c @@ -124,8 +124,9 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface, if (!name || !var) return E_POINTER; - if (moniker->type == DEVICE_DMO) + switch (moniker->type) { + case DEVICE_DMO: if (!wcscmp(name, L"FriendlyName")) { if (SUCCEEDED(hr = DMOGetName(&moniker->clsid, dmo_name))) @@ -135,7 +136,7 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface, } return hr; } - else if (!wcscmp(name, L"FilterData")) + if (!wcscmp(name, L"FilterData")) { DMO_PARTIAL_MEDIATYPE *types = NULL, *new_array; ULONG count = 1, input_count, output_count, i; @@ -196,10 +197,8 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface, return hr; } return HRESULT_FROM_WIN32(ERROR_NOT_FOUND); - } - if (moniker->type == DEVICE_FILTER) - { + case DEVICE_FILTER: wcscpy(path, L"CLSID\\"); if (moniker->has_class) { @@ -208,15 +207,19 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface, } if ((ret = RegOpenKeyExW(HKEY_CLASSES_ROOT, path, 0, 0, &parent))) return HRESULT_FROM_WIN32(ret); - } - else if (moniker->type == DEVICE_CODEC) - { + break; + + case DEVICE_CODEC: wcscpy(path, L"Software\\Microsoft\\ActiveMovie\\devenum\\"); if (moniker->has_class) StringFromGUID2(&moniker->class, path + wcslen(path), CHARS_IN_GUID); if ((ret = RegOpenKeyExW(HKEY_CURRENT_USER, path, 0, 0, &parent))) return HRESULT_FROM_WIN32(ret); + break; + + DEFAULT_UNREACHABLE; } + ret = RegOpenKeyExW(parent, moniker->name, 0, KEY_READ, &key); RegCloseKey(parent); if (ret) @@ -302,11 +305,12 @@ static HRESULT WINAPI property_bag_Write(IPropertyBag *iface, const WCHAR *name, TRACE("moniker %p, name %s, var %s.\n", moniker, debugstr_w(name), debugstr_variant(var)); - if (moniker->type == DEVICE_DMO) + switch (moniker->type) + { + case DEVICE_DMO: return E_ACCESSDENIED; - if (moniker->type == DEVICE_FILTER) - { + case DEVICE_FILTER: wcscpy(path, L"CLSID\\"); if (moniker->has_class) { @@ -315,14 +319,17 @@ static HRESULT WINAPI property_bag_Write(IPropertyBag *iface, const WCHAR *name, } if ((ret = RegCreateKeyExW(HKEY_CLASSES_ROOT, path, 0, NULL, 0, 0, NULL, &parent, NULL))) return HRESULT_FROM_WIN32(ret); - } - else if (moniker->type == DEVICE_CODEC) - { + break; + + case DEVICE_CODEC: wcscpy(path, L"Software\\Microsoft\\ActiveMovie\\devenum\\"); if (moniker->has_class) StringFromGUID2(&moniker->class, path + wcslen(path), CHARS_IN_GUID); if ((ret = RegCreateKeyExW(HKEY_CURRENT_USER, path, 0, NULL, 0, 0, NULL, &parent, NULL))) return HRESULT_FROM_WIN32(ret); + break; + + DEFAULT_UNREACHABLE; } ret = RegCreateKeyExW(parent, moniker->name, 0, NULL, 0, KEY_WRITE, NULL, &key, NULL); RegCloseKey(parent);
participants (1)
-
Alexandre Julliard