From 9925785eef43a04fd8b745c6ac4f05d0dcafbf0e Mon Sep 17 00:00:00 2001 From: Roman Mindalev Date: Fri, 13 Mar 2009 20:16:35 +0300 Subject: [PATCH] ntdll: Move search for assemblyIdentity element. --- dlls/ntdll/actctx.c | 60 ++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index f864033a4fa..37449047dc7 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -1390,37 +1390,6 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, assembly->no_inherit) return FALSE; - if (xmlstr_cmp(&elem, assemblyIdentityW)) - { - if (!parse_assembly_identity_elem(xmlbuf, acl->actctx, &assembly->id)) return FALSE; - ret = next_xml_elem(xmlbuf, &elem); - - if (expected_ai) - { - /* FIXME: more tests */ - if (assembly->type == ASSEMBLY_MANIFEST && - memcmp(&assembly->id.version, &expected_ai->version, sizeof(assembly->id.version))) - { - FIXME("wrong version for assembly manifest: %u.%u.%u.%u / %u.%u.%u.%u\n", - expected_ai->version.major, expected_ai->version.minor, - expected_ai->version.build, expected_ai->version.revision, - assembly->id.version.major, assembly->id.version.minor, - assembly->id.version.build, assembly->id.version.revision); - return FALSE; - } - else if (assembly->type == ASSEMBLY_SHARED_MANIFEST && - (assembly->id.version.major != expected_ai->version.major || - assembly->id.version.minor != expected_ai->version.minor || - assembly->id.version.build < expected_ai->version.build || - (assembly->id.version.build == expected_ai->version.build && - assembly->id.version.revision < expected_ai->version.revision))) - { - FIXME("wrong version for shared assembly manifest\n"); - return FALSE; - } - } - } - while (ret) { if (xmlstr_cmp_end(&elem, assemblyW)) @@ -1452,6 +1421,35 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, { ret = parse_clr_surrogate_elem(xmlbuf, assembly); } + else if (xmlstr_cmp(&elem, assemblyIdentityW)) + { + if (!parse_assembly_identity_elem(xmlbuf, acl->actctx, &assembly->id)) return FALSE; + + if (expected_ai) + { + /* FIXME: more tests */ + if (assembly->type == ASSEMBLY_MANIFEST && + memcmp(&assembly->id.version, &expected_ai->version, sizeof(assembly->id.version))) + { + FIXME("wrong version for assembly manifest: %u.%u.%u.%u / %u.%u.%u.%u\n", + expected_ai->version.major, expected_ai->version.minor, + expected_ai->version.build, expected_ai->version.revision, + assembly->id.version.major, assembly->id.version.minor, + assembly->id.version.build, assembly->id.version.revision); + ret = FALSE; + } + else if (assembly->type == ASSEMBLY_SHARED_MANIFEST && + (assembly->id.version.major != expected_ai->version.major || + assembly->id.version.minor != expected_ai->version.minor || + assembly->id.version.build < expected_ai->version.build || + (assembly->id.version.build == expected_ai->version.build && + assembly->id.version.revision < expected_ai->version.revision))) + { + FIXME("wrong version for shared assembly manifest\n"); + ret = FALSE; + } + } + } else { WARN("unknown element %s\n", debugstr_xmlstr(&elem));