From: Jacek Caban Subject: [PATCH 1/2] atl80: Skip NULL map entries in AtlComModuleRegisterServer Message-Id: <50EEB386.70101@codeweavers.com> Date: Thu, 10 Jan 2013 13:26:46 +0100 --- dlls/atl80/atl80.c | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git a/dlls/atl80/atl80.c b/dlls/atl80/atl80.c index 278d736..2cee94c 100644 --- a/dlls/atl80/atl80.c +++ b/dlls/atl80/atl80.c @@ -37,18 +37,19 @@ HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib TRACE("(%p %x %s)\n", mod, bRegTypeLib, debugstr_guid(clsid)); for(iter = mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++) { - if(!clsid || IsEqualCLSID((*iter)->pclsid, clsid)) { - TRACE("Registering clsid %s\n", debugstr_guid((*iter)->pclsid)); - hres = (*iter)->pfnUpdateRegistry(TRUE); + if(!*iter || (clsid && !IsEqualCLSID((*iter)->pclsid, clsid))) + continue; + + TRACE("Registering clsid %s\n", debugstr_guid((*iter)->pclsid)); + hres = (*iter)->pfnUpdateRegistry(TRUE); + if(FAILED(hres)) + return hres; + + catmap = (*iter)->pfnGetCategoryMap(); + if(catmap) { + hres = AtlRegisterClassCategoriesHelper((*iter)->pclsid, catmap, TRUE); if(FAILED(hres)) return hres; - - catmap = (*iter)->pfnGetCategoryMap(); - if(catmap) { - hres = AtlRegisterClassCategoriesHelper((*iter)->pclsid, catmap, TRUE); - if(FAILED(hres)) - return hres; - } } }