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
69849bd2
Commit
69849bd2
authored
Mar 27, 2024
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
widl: Don't skip a pointer level for pointers to pointers to strings.
parent
4573910a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
26 deletions
+5
-26
server.c
dlls/rpcrt4/tests/server.c
+0
-12
typegen.c
tools/widl/typegen.c
+5
-14
No files found.
dlls/rpcrt4/tests/server.c
View file @
69849bd2
...
@@ -249,12 +249,8 @@ static void (__cdecl *test_I_RpcBindingInqLocalClientPID)(unsigned int protseq,
...
@@ -249,12 +249,8 @@ static void (__cdecl *test_I_RpcBindingInqLocalClientPID)(unsigned int protseq,
/* type check statements generated in header file */
/* type check statements generated in header file */
fnprintf
*
p_printf
=
printf
;
fnprintf
*
p_printf
=
printf
;
static
BOOL
is_interp
;
static
void
set_interp_interface
(
void
)
static
void
set_interp_interface
(
void
)
{
{
is_interp
=
TRUE
;
#define X(name) name = interp_##name;
#define X(name) name = interp_##name;
SERVER_FUNCTIONS
SERVER_FUNCTIONS
#undef X
#undef X
...
@@ -262,8 +258,6 @@ static void set_interp_interface(void)
...
@@ -262,8 +258,6 @@ static void set_interp_interface(void)
static
void
set_mixed_interface
(
void
)
static
void
set_mixed_interface
(
void
)
{
{
is_interp
=
FALSE
;
#define X(name) name = mixed_##name;
#define X(name) name = mixed_##name;
SERVER_FUNCTIONS
SERVER_FUNCTIONS
#undef X
#undef X
...
@@ -1396,11 +1390,9 @@ basic_tests(void)
...
@@ -1396,11 +1390,9 @@ basic_tests(void)
check_null
(
NULL
);
check_null
(
NULL
);
if
(
!
is_interp
||
sizeof
(
void
*
)
!=
8
)
{
/* broken in widl for win64 */
str
=
get_filename
();
str
=
get_filename
();
ok
(
!
strcmp
(
str
,
__FILE__
),
"get_filename() returned %s instead of %s
\n
"
,
str
,
__FILE__
);
ok
(
!
strcmp
(
str
,
__FILE__
),
"get_filename() returned %s instead of %s
\n
"
,
str
,
__FILE__
);
midl_user_free
(
str
);
midl_user_free
(
str
);
}
x
=
echo_ranged_int
(
0
,
0
,
0
);
x
=
echo_ranged_int
(
0
,
0
,
0
);
ok
(
x
==
0
,
"echo_ranged_int() returned %d instead of 0
\n
"
,
x
);
ok
(
x
==
0
,
"echo_ranged_int() returned %d instead of 0
\n
"
,
x
);
...
@@ -1678,7 +1670,6 @@ pointer_tests(void)
...
@@ -1678,7 +1670,6 @@ pointer_tests(void)
ok
(
!
strcmp
(
name
.
name
,
"Jeremy Wh"
),
"name didn't unmarshall properly, expected
\"
Jeremy Wh
\"
, but got
\"
%s
\"\n
"
,
name
.
name
);
ok
(
!
strcmp
(
name
.
name
,
"Jeremy Wh"
),
"name didn't unmarshall properly, expected
\"
Jeremy Wh
\"
, but got
\"
%s
\"\n
"
,
name
.
name
);
free
(
name
.
name
);
free
(
name
.
name
);
if
(
!
is_interp
)
{
/* broken in widl */
n
=
-
1
;
n
=
-
1
;
names
=
NULL
;
names
=
NULL
;
get_names
(
&
n
,
&
names
);
get_names
(
&
n
,
&
names
);
...
@@ -1698,13 +1689,10 @@ pointer_tests(void)
...
@@ -1698,13 +1689,10 @@ pointer_tests(void)
MIDL_user_free
(
namesw
[
0
]);
MIDL_user_free
(
namesw
[
0
]);
MIDL_user_free
(
namesw
[
1
]);
MIDL_user_free
(
namesw
[
1
]);
MIDL_user_free
(
namesw
);
MIDL_user_free
(
namesw
);
}
}
}
if
(
!
is_interp
)
{
/* broken in widl */
pa2
=
a
;
pa2
=
a
;
ok
(
sum_pcarr2
(
4
,
&
pa2
)
==
10
,
"RPC sum_pcarr2
\n
"
);
ok
(
sum_pcarr2
(
4
,
&
pa2
)
==
10
,
"RPC sum_pcarr2
\n
"
);
}
s123
=
get_s123
();
s123
=
get_s123
();
ok
(
s123
->
f1
==
1
&&
s123
->
f2
==
2
&&
s123
->
f3
==
3
,
"RPC get_s123
\n
"
);
ok
(
s123
->
f1
==
1
&&
s123
->
f2
==
2
&&
s123
->
f3
==
3
,
"RPC get_s123
\n
"
);
...
...
tools/widl/typegen.c
View file @
69849bd2
...
@@ -2944,7 +2944,10 @@ static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs,
...
@@ -2944,7 +2944,10 @@ static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs,
elem_type
=
type_pointer_get_ref_type
(
type
);
elem_type
=
type_pointer_get_ref_type
(
type
);
if
(
type_get_type
(
elem_type
)
==
TYPE_POINTER
&&
is_array
(
type
))
if
(
type_get_type
(
elem_type
)
==
TYPE_POINTER
&&
is_array
(
type
))
return
write_array_tfs
(
file
,
attrs
,
type
,
name
,
typestring_offset
);
{
write_array_tfs
(
file
,
attrs
,
type
,
name
,
typestring_offset
);
return
start_offset
;
}
if
(
type_get_type
(
elem_type
)
!=
TYPE_BASIC
)
if
(
type_get_type
(
elem_type
)
!=
TYPE_BASIC
)
{
{
...
@@ -3730,19 +3733,7 @@ static unsigned int write_type_tfs(FILE *file, const attr_list_t *attrs,
...
@@ -3730,19 +3733,7 @@ static unsigned int write_type_tfs(FILE *file, const attr_list_t *attrs,
else
else
ref_context
=
context
;
ref_context
=
context
;
if
(
is_string_type
(
attrs
,
ref
))
offset
=
write_type_tfs
(
file
,
attrs
,
ref
,
name
,
ref_context
,
typeformat_offset
);
{
if
(
context
!=
TYPE_CONTEXT_CONTAINER_NO_POINTERS
)
write_pointer_tfs
(
file
,
attrs
,
type
,
*
typeformat_offset
+
4
,
context
,
typeformat_offset
);
offset
=
write_type_tfs
(
file
,
attrs
,
ref
,
name
,
ref_context
,
typeformat_offset
);
if
(
context
==
TYPE_CONTEXT_CONTAINER_NO_POINTERS
)
return
0
;
return
offset
;
}
offset
=
write_type_tfs
(
file
,
attrs
,
type_pointer_get_ref_type
(
type
),
name
,
ref_context
,
typeformat_offset
);
if
(
context
==
TYPE_CONTEXT_CONTAINER_NO_POINTERS
)
if
(
context
==
TYPE_CONTEXT_CONTAINER_NO_POINTERS
)
return
0
;
return
0
;
return
write_pointer_tfs
(
file
,
attrs
,
type
,
offset
,
context
,
typeformat_offset
);
return
write_pointer_tfs
(
file
,
attrs
,
type
,
offset
,
context
,
typeformat_offset
);
...
...
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