Merge remote-tracking branch 'hramrach/pull'
This commit is contained in:
commit
af3f64fb77
|
@ -1553,13 +1553,7 @@ xf86LoadOneModule(char *name, pointer opt)
|
|||
void
|
||||
xf86UnloadSubModule(pointer mod)
|
||||
{
|
||||
/*
|
||||
* This is disabled for now. The loader isn't smart enough yet to undo
|
||||
* relocations.
|
||||
*/
|
||||
#if 0
|
||||
UnloadSubModule(mod);
|
||||
#endif
|
||||
}
|
||||
|
||||
Bool
|
||||
|
|
|
@ -94,6 +94,8 @@ const ModuleVersions LoaderVersionInfo = {
|
|||
ABI_FONT_VERSION
|
||||
};
|
||||
|
||||
static int ModuleDuplicated[] = {};
|
||||
|
||||
static void
|
||||
FreeStringList(char **paths)
|
||||
{
|
||||
|
@ -785,7 +787,6 @@ ModuleDescPtr
|
|||
DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent)
|
||||
{
|
||||
ModuleDescPtr ret;
|
||||
int errmaj, errmin;
|
||||
|
||||
if (!mod)
|
||||
return NULL;
|
||||
|
@ -794,14 +795,11 @@ DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent)
|
|||
if (ret == NULL)
|
||||
return NULL;
|
||||
|
||||
if (!(ret->handle = LoaderOpen(mod->path, &errmaj, &errmin))) {
|
||||
free(ret);
|
||||
return NULL;
|
||||
}
|
||||
ret->handle = mod->handle;
|
||||
|
||||
ret->SetupProc = mod->SetupProc;
|
||||
ret->TearDownProc = mod->TearDownProc;
|
||||
ret->TearDownData = NULL;
|
||||
ret->TearDownData = ModuleDuplicated;
|
||||
ret->child = DuplicateModule(mod->child, ret);
|
||||
ret->sib = DuplicateModule(mod->sib, parent);
|
||||
ret->parent = parent;
|
||||
|
@ -1072,11 +1070,16 @@ UnloadModuleOrDriver(ModuleDescPtr mod)
|
|||
if (mod == NULL || mod->name == NULL)
|
||||
return;
|
||||
|
||||
xf86MsgVerb(X_INFO, 3, "UnloadModule: \"%s\"\n", mod->name);
|
||||
if (mod->parent)
|
||||
xf86MsgVerb(X_INFO, 3, "UnloadSubModule: \"%s\"\n", mod->name);
|
||||
else
|
||||
xf86MsgVerb(X_INFO, 3, "UnloadModule: \"%s\"\n", mod->name);
|
||||
|
||||
if ((mod->TearDownProc) && (mod->TearDownData))
|
||||
mod->TearDownProc(mod->TearDownData);
|
||||
LoaderUnload(mod->name, mod->handle);
|
||||
if (mod->TearDownData != ModuleDuplicated) {
|
||||
if ((mod->TearDownProc) && (mod->TearDownData))
|
||||
mod->TearDownProc(mod->TearDownData);
|
||||
LoaderUnload(mod->name, mod->handle);
|
||||
}
|
||||
|
||||
if (mod->child)
|
||||
UnloadModuleOrDriver(mod->child);
|
||||
|
@ -1092,23 +1095,8 @@ UnloadSubModule(pointer _mod)
|
|||
{
|
||||
ModuleDescPtr mod = (ModuleDescPtr)_mod;
|
||||
|
||||
if (mod == NULL || mod->name == NULL)
|
||||
return;
|
||||
|
||||
xf86MsgVerb(X_INFO, 3, "UnloadSubModule: \"%s\"\n", mod->name);
|
||||
|
||||
if ((mod->TearDownProc) && (mod->TearDownData))
|
||||
mod->TearDownProc(mod->TearDownData);
|
||||
LoaderUnload(mod->name, mod->handle);
|
||||
|
||||
RemoveChild(mod);
|
||||
|
||||
if (mod->child)
|
||||
UnloadModuleOrDriver(mod->child);
|
||||
|
||||
free(mod->path);
|
||||
free(mod->name);
|
||||
free(mod);
|
||||
UnloadModuleOrDriver(mod);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1135,6 +1123,7 @@ RemoveChild(ModuleDescPtr child)
|
|||
}
|
||||
if (mdp == child)
|
||||
prevsib->sib = child->sib;
|
||||
child->sib = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -100,6 +100,12 @@ specifies a file which contains a collection of authorization records used
|
|||
to authenticate access. See also the \fIxdm\fP(1) and
|
||||
\fIXsecurity\fP(__miscmansuffix__) manual pages.
|
||||
.TP 8
|
||||
.BI \-background\ none
|
||||
Asks the driver not to clear the background on startup, if the driver supports that.
|
||||
May be useful for smooth transition with eg. fbdev driver.
|
||||
For security reasons this is not the default as the screen contents might
|
||||
show a previous user session.
|
||||
.TP 8
|
||||
.B \-br
|
||||
sets the default root window to solid black instead of the standard root weave
|
||||
pattern. This is the default unless -retro or -wr is specified.
|
||||
|
|
Loading…
Reference in New Issue