- Added support for app-specific dll overrides using
AppDefaults\<appname>\DllOverrides configuration section.
- Better support for multiple --dll options.
- Added warning message to discourage putting multiple dlls in a
single override entry.
diff --git a/loader/module.c b/loader/module.c
index 9c9bb52..83430ed 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -1305,7 +1305,7 @@
DWORD err = GetLastError();
WINE_MODREF *pwm;
int i;
- module_loadorder_t *plo;
+ enum loadorder_type loadorder[LOADORDER_NTYPES];
LPSTR filename, p;
const char *filetype = "";
@@ -1388,36 +1388,34 @@
return pwm;
}
- plo = MODULE_GetLoadOrder(filename, TRUE);
+ MODULE_GetLoadOrder( loadorder, filename, TRUE);
- for(i = 0; i < MODULE_LOADORDER_NTYPES; i++)
+ for(i = 0; i < LOADORDER_NTYPES; i++)
{
+ if (loadorder[i] == LOADORDER_INVALID) break;
SetLastError( ERROR_FILE_NOT_FOUND );
- switch(plo->loadorder[i])
+
+ switch(loadorder[i])
{
- case MODULE_LOADORDER_DLL:
+ case LOADORDER_DLL:
TRACE("Trying native dll '%s'\n", filename);
pwm = PE_LoadLibraryExA(filename, flags);
filetype = "native";
break;
- case MODULE_LOADORDER_SO:
+ case LOADORDER_SO:
TRACE("Trying so-library '%s'\n", filename);
pwm = ELF_LoadLibraryExA(filename, flags);
filetype = "so";
break;
- case MODULE_LOADORDER_BI:
+ case LOADORDER_BI:
TRACE("Trying built-in '%s'\n", filename);
pwm = BUILTIN32_LoadLibraryExA(filename, flags);
filetype = "builtin";
break;
- default:
- ERR("Got invalid loadorder type %d (%s index %d)\n", plo->loadorder[i], plo->modulename, i);
- /* Fall through */
-
- case MODULE_LOADORDER_INVALID: /* We ignore this as it is an empty entry */
+ default:
pwm = NULL;
break;
}