[WINESYNC] reg: Don't enumerate a registry key for subkeys if we know the key does not have subkeys.

Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 33cfc644a055a9bc88253ae8d8c824ad603e7a02 by Hugh McMaster <hugh.mcmaster@outlook.com>
This commit is contained in:
winesync 2022-01-16 21:15:48 +01:00 committed by Thomas Csovcsity
parent 3dbd42081e
commit d9ac771683
2 changed files with 7 additions and 4 deletions

View file

@ -213,7 +213,7 @@ static int query_value(HKEY hkey, WCHAR *value_name, WCHAR *path, BOOL recurse)
static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing)
{
LONG rc;
DWORD num_values;
DWORD num_subkeys, num_values;
DWORD max_value_len = 256, value_len;
DWORD max_data_bytes = 2048, data_size;
DWORD subkey_len;
@ -222,8 +222,8 @@ static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing)
BYTE *data;
HKEY subkey;
rc = RegQueryInfoKeyW(hkey, NULL, NULL, NULL, NULL, NULL, NULL,
&num_values, NULL, NULL, NULL, NULL);
rc = RegQueryInfoKeyW(hkey, NULL, NULL, NULL, &num_subkeys, NULL,
NULL, &num_values, NULL, NULL, NULL, NULL);
if (rc) return 1;
if (num_values || recursing)
@ -265,6 +265,9 @@ static int query_all(HKEY hkey, WCHAR *path, BOOL recurse, BOOL recursing)
if (i || recursing)
output_string(newlineW);
if (!num_subkeys)
return 0;
subkey_name = malloc(MAX_SUBKEY_LEN * sizeof(WCHAR));
path_len = lstrlenW(path);

View file

@ -4,4 +4,4 @@ directories:
files:
programs/reg/resource.h: base/applications/cmdutils/reg/resource.h
tags:
wine: 35ccb87a767394ea3054c8890ad7b245e431290d
wine: 33cfc644a055a9bc88253ae8d8c824ad603e7a02