Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0eec45a9
Commit
0eec45a9
authored
Aug 16, 2002
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Force loadorder of 16-bit dlls to builtin if their 32-bit counterpart
has already been loaded as builtin.
parent
40043ed2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
3 deletions
+35
-3
builtin.c
if1632/builtin.c
+19
-0
builtin16.h
include/builtin16.h
+0
-2
module.h
include/module.h
+4
-0
loadorder.c
loader/loadorder.c
+12
-1
No files found.
if1632/builtin.c
View file @
0eec45a9
...
...
@@ -155,6 +155,25 @@ static const BUILTIN16_DESCRIPTOR *find_dll_descr( const char *dllname )
/***********************************************************************
* BUILTIN_IsPresent
*
* Check if a builtin dll descriptor is present (because we loaded its 32-bit counterpart).
*/
BOOL
BUILTIN_IsPresent
(
LPCSTR
name
)
{
char
dllname
[
20
],
*
p
;
if
(
strlen
(
name
)
>=
sizeof
(
dllname
)
-
4
)
return
FALSE
;
strcpy
(
dllname
,
name
);
p
=
strrchr
(
dllname
,
'.'
);
if
(
!
p
)
strcat
(
dllname
,
".dll"
);
for
(
p
=
dllname
;
*
p
;
p
++
)
*
p
=
FILE_tolower
(
*
p
);
return
(
find_dll_descr
(
dllname
)
!=
NULL
);
}
/***********************************************************************
* BUILTIN_LoadModule
*
* Load a built-in module.
...
...
include/builtin16.h
View file @
0eec45a9
...
...
@@ -88,8 +88,6 @@ enum arg_types
#define ARG_RET16 0x80000000
/* function returns 16-bit value */
#define ARG_REGISTER 0x40000000
/* function is register */
extern
HMODULE16
BUILTIN_LoadModule
(
LPCSTR
name
);
extern
WORD
__wine_call_from_16_word
();
extern
LONG
__wine_call_from_16_long
();
extern
void
__wine_call_from_16_regs
();
...
...
include/module.h
View file @
0eec45a9
...
...
@@ -272,6 +272,10 @@ extern HMODULE BUILTIN32_LoadExeModule( HMODULE main );
extern
void
*
BUILTIN32_dlopen
(
const
char
*
name
);
extern
int
BUILTIN32_dlclose
(
void
*
handle
);
/* if1632/builtin.c */
extern
HMODULE16
BUILTIN_LoadModule
(
LPCSTR
name
);
extern
BOOL
BUILTIN_IsPresent
(
LPCSTR
name
);
/* USER signal proc flags and codes */
/* See PROCESS_CallUserSignalProc for comments */
#define USIG_FLAGS_WIN32 0x0001
...
...
loader/loadorder.c
View file @
0eec45a9
...
...
@@ -494,7 +494,18 @@ void MODULE_GetLoadOrder( enum loadorder_type loadorder[], const char *path, BOO
/* Strip path information for 16 bit modules or if the module
* resides in the system directory */
if
(
!
win32
)
path
=
get_basename
(
path
);
if
(
!
win32
)
{
path
=
get_basename
(
path
);
if
(
BUILTIN_IsPresent
(
path
))
{
TRACE
(
"forcing loadorder to builtin for %s
\n
"
,
debugstr_a
(
path
)
);
/* force builtin loadorder since the dll is already in memory */
loadorder
[
0
]
=
LOADORDER_BI
;
loadorder
[
1
]
=
LOADORDER_INVALID
;
return
;
}
}
else
{
char
sysdir
[
MAX_PATH
+
1
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment