mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-03 01:33:42 +00:00
ntdll: Allow empty application nodes in actctx.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
This commit is contained in:
parent
1155a1914b
commit
6558611fa2
|
@ -511,6 +511,23 @@ static const char settings_manifest3[] =
|
|||
" </asmv3:application>"
|
||||
"</assembly>";
|
||||
|
||||
static const char settings_manifest4[] =
|
||||
"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">"
|
||||
" <assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>"
|
||||
" <application/>"
|
||||
" <application xmlns=\"urn:schemas-microsoft-com:asm.v3\">"
|
||||
" <windowsSettings>"
|
||||
" <dpiAware xmlns=\"http://schemas.microsoft.com/SMI/2005/WindowsSettings\">true</dpiAware>"
|
||||
" </windowsSettings>"
|
||||
" </application>"
|
||||
" <application/>"
|
||||
" <application xmlns=\"urn:schemas-microsoft-com:asm.v3\">"
|
||||
" <windowsSettings>"
|
||||
" <dpiAwareness xmlns=\"http://schemas.microsoft.com/SMI/2016/WindowsSettings\">true</dpiAwareness>"
|
||||
" </windowsSettings>"
|
||||
" </application>"
|
||||
"</assembly>";
|
||||
|
||||
static const char two_dll_manifest_dll[] =
|
||||
"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v3\" manifestVersion=\"1.0\">"
|
||||
" <assemblyIdentity type=\"win32\" name=\"sxs_dll\" version=\"1.0.0.0\" processorArchitecture=\"x86\" publicKeyToken=\"0000000000000000\"/>"
|
||||
|
@ -3405,6 +3422,23 @@ static void test_settings(void)
|
|||
ok( !ret, "QueryActCtxSettingsW succeeded\n" );
|
||||
ok( GetLastError() == ERROR_SXS_KEY_NOT_FOUND, "wrong error %lu\n", GetLastError() );
|
||||
ReleaseActCtx(handle);
|
||||
|
||||
/* lookup occurs in first non empty node */
|
||||
create_manifest_file( "manifest_settings4.manifest", settings_manifest4, -1, NULL, NULL );
|
||||
handle = test_create("manifest_settings4.manifest");
|
||||
ok( handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %lu\n", GetLastError() );
|
||||
DeleteFileA( "manifest_settings3.manifest" );
|
||||
SetLastError( 0xdeadbeef );
|
||||
size = 0xdead;
|
||||
memset( buffer, 0xcc, sizeof(buffer) );
|
||||
ret = pQueryActCtxSettingsW( 0, handle, NULL, dpiAwareW, buffer, 80, &size );
|
||||
ok( ret, "QueryActCtxSettingsW failed\n" );
|
||||
SetLastError( 0xdeadbeef );
|
||||
size = 0xdead;
|
||||
memset( buffer, 0xcc, sizeof(buffer) );
|
||||
ret = pQueryActCtxSettingsW( 0, handle, NULL, dpiAwarenessW, buffer, 80, &size );
|
||||
ok( !ret, "QueryActCtxSettingsW succeeded\n" );
|
||||
ReleaseActCtx(handle);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
|
|
|
@ -2564,6 +2564,15 @@ static void parse_application_elem( xmlbuf_t *xmlbuf, struct assembly *assembly,
|
|||
struct actctx_loader *acl, const struct xml_elem *parent )
|
||||
{
|
||||
struct xml_elem elem;
|
||||
struct xml_attr attr;
|
||||
BOOL end = FALSE;
|
||||
|
||||
while (next_xml_attr(xmlbuf, &attr, &end))
|
||||
{
|
||||
if (!is_xmlns_attr( &attr )) WARN( "unknown attr %s\n", debugstr_xml_attr(&attr) );
|
||||
}
|
||||
|
||||
if (end) return;
|
||||
|
||||
while (next_xml_elem( xmlbuf, &elem, parent ))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue