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
7a52190c
Commit
7a52190c
authored
Sep 19, 2005
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Take into account -noname functions when checking for duplicate export
names. Fixed a couple of issues found by the stricter check.
parent
83f3b370
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
20 deletions
+39
-20
shdocvw.spec
dlls/shdocvw/shdocvw.spec
+1
-1
shlwapi.spec
dlls/shlwapi/shlwapi.spec
+3
-3
parser.c
tools/winebuild/parser.c
+35
-16
No files found.
dlls/shdocvw/shdocvw.spec
View file @
7a52190c
...
...
@@ -65,7 +65,7 @@
185 stub -noname FireEvent_Quit
187 stub -noname SHDGetPageLocation
188 stub -noname SHIEErrorMsgBox
189 stub
-noname IEGetDisplayName
189 stub
@ # FIXME: same as ordinal 148
190 stub -noname SHRunIndirectRegClientCommandForward
191 stub -noname SHIsRegisteredClient
192 stub -noname SHGetHistoryPIDL
...
...
dlls/shlwapi/shlwapi.spec
View file @
7a52190c
...
...
@@ -493,8 +493,8 @@
493 stub -noname SHPropertyBag_ReadType
494 stub -noname SHPropertyBag_ReadStr
495 stub -noname SHPropertyBag_WriteStr
496 stub -noname SHPropertyBag_Read
Int
497 stub -noname SHPropertyBag_Write
Int
496 stub -noname SHPropertyBag_Read
LONG
497 stub -noname SHPropertyBag_Write
LONG
498 stub -noname SHPropertyBag_ReadBOOLOld
499 stub -noname SHPropertyBag_WriteBOOL
...
...
@@ -531,7 +531,7 @@
535 stub -noname SHPropertyBag_Delete
536 stub -noname IUnknown_QueryServicePropertyBag
537 stub -noname SHBoolSystemParametersInfo
538 stub -noname IUnknown_QueryService
PropertyBag
538 stub -noname IUnknown_QueryService
ForWebBrowserApp
539 stub -noname IUnknown_ShowBrowserBar
540 stub -noname SHInvokeCommandOnContextMenu
541 stub -noname SHInvokeCommandsOnContextMen
...
...
tools/winebuild/parser.c
View file @
7a52190c
...
...
@@ -559,11 +559,13 @@ error:
}
static
int
name_compare
(
const
void
*
name1
,
const
void
*
name
2
)
static
int
name_compare
(
const
void
*
ptr1
,
const
void
*
ptr
2
)
{
const
ORDDEF
*
odp1
=
*
(
const
ORDDEF
*
const
*
)
name1
;
const
ORDDEF
*
odp2
=
*
(
const
ORDDEF
*
const
*
)
name2
;
return
strcmp
(
odp1
->
name
,
odp2
->
name
);
const
ORDDEF
*
odp1
=
*
(
const
ORDDEF
*
const
*
)
ptr1
;
const
ORDDEF
*
odp2
=
*
(
const
ORDDEF
*
const
*
)
ptr2
;
const
char
*
name1
=
odp1
->
name
?
odp1
->
name
:
odp1
->
export_name
;
const
char
*
name2
=
odp2
->
name
?
odp2
->
name
:
odp2
->
export_name
;
return
strcmp
(
name1
,
name2
);
}
/*******************************************************************
...
...
@@ -573,31 +575,48 @@ static int name_compare( const void *name1, const void *name2 )
*/
static
void
assign_names
(
DLLSPEC
*
spec
)
{
int
i
,
j
;
int
i
,
j
,
nb_exp_names
=
0
;
ORDDEF
**
all_names
;
spec
->
nb_names
=
0
;
for
(
i
=
0
;
i
<
spec
->
nb_entry_points
;
i
++
)
if
(
spec
->
entry_points
[
i
].
name
)
spec
->
nb_names
++
;
if
(
!
spec
->
nb_names
)
return
;
else
if
(
spec
->
entry_points
[
i
].
export_name
)
nb_exp_names
++
;
spec
->
names
=
xmalloc
(
spec
->
nb_names
*
sizeof
(
spec
->
names
[
0
])
);
if
(
!
spec
->
nb_names
&&
!
nb_exp_names
)
return
;
/* check for duplicates */
all_names
=
xmalloc
(
(
spec
->
nb_names
+
nb_exp_names
)
*
sizeof
(
all_names
[
0
])
);
for
(
i
=
j
=
0
;
i
<
spec
->
nb_entry_points
;
i
++
)
if
(
spec
->
entry_points
[
i
].
name
)
spec
->
names
[
j
++
]
=
&
spec
->
entry_points
[
i
];
if
(
spec
->
entry_points
[
i
].
name
||
spec
->
entry_points
[
i
].
export_name
)
all_names
[
j
++
]
=
&
spec
->
entry_points
[
i
];
/* sort the list of names */
qsort
(
spec
->
names
,
spec
->
nb_names
,
sizeof
(
spec
->
names
[
0
]),
name_compare
);
qsort
(
all_names
,
j
,
sizeof
(
all_names
[
0
]),
name_compare
);
/* check for duplicate names */
for
(
i
=
0
;
i
<
spec
->
nb_names
-
1
;
i
++
)
for
(
i
=
0
;
i
<
j
-
1
;
i
++
)
{
if
(
!
strcmp
(
spec
->
names
[
i
]
->
name
,
spec
->
names
[
i
+
1
]
->
name
))
const
char
*
name1
=
all_names
[
i
]
->
name
?
all_names
[
i
]
->
name
:
all_names
[
i
]
->
export_name
;
const
char
*
name2
=
all_names
[
i
+
1
]
->
name
?
all_names
[
i
+
1
]
->
name
:
all_names
[
i
+
1
]
->
export_name
;
if
(
!
strcmp
(
name1
,
name2
))
{
current_line
=
max
(
spec
->
names
[
i
]
->
lineno
,
spec
->
names
[
i
+
1
]
->
lineno
);
current_line
=
max
(
all_names
[
i
]
->
lineno
,
all_
names
[
i
+
1
]
->
lineno
);
error
(
"'%s' redefined
\n
%s:%d: First defined here
\n
"
,
spec
->
names
[
i
]
->
name
,
input_file_name
,
min
(
spec
->
names
[
i
]
->
lineno
,
spec
->
names
[
i
+
1
]
->
lineno
)
);
name1
,
input_file_name
,
min
(
all_names
[
i
]
->
lineno
,
all_
names
[
i
+
1
]
->
lineno
)
);
}
}
free
(
all_names
);
if
(
spec
->
nb_names
)
{
spec
->
names
=
xmalloc
(
spec
->
nb_names
*
sizeof
(
spec
->
names
[
0
])
);
for
(
i
=
j
=
0
;
i
<
spec
->
nb_entry_points
;
i
++
)
if
(
spec
->
entry_points
[
i
].
name
)
spec
->
names
[
j
++
]
=
&
spec
->
entry_points
[
i
];
/* sort the list of names */
qsort
(
spec
->
names
,
spec
->
nb_names
,
sizeof
(
spec
->
names
[
0
]),
name_compare
);
}
}
/*******************************************************************
...
...
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