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
fcc09608
Commit
fcc09608
authored
Feb 06, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
widl: Add printf format attribute on all printf-like functions and fix resulting warnings.
parent
ef6971da
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
36 additions
and
37 deletions
+36
-37
client.c
tools/widl/client.c
+3
-2
header.h
tools/widl/header.h
+2
-2
proxy.c
tools/widl/proxy.c
+5
-5
server.c
tools/widl/server.c
+5
-6
typegen.c
tools/widl/typegen.c
+21
-22
No files found.
tools/widl/client.c
View file @
fcc09608
...
...
@@ -41,6 +41,7 @@
static
FILE
*
client
;
static
int
indent
=
0
;
static
void
print_client
(
const
char
*
format
,
...
)
__attribute__
((
format
(
printf
,
1
,
2
)));
static
void
print_client
(
const
char
*
format
,
...
)
{
va_list
va
;
...
...
@@ -166,7 +167,7 @@ static void write_function_stubs(type_t *iface, unsigned int *proc_offset)
/* declare return value '_RetVal' */
if
(
!
is_void
(
type_function_get_rettype
(
func
->
type
)))
{
print_client
(
""
);
print_client
(
"
%s"
,
"
"
);
write_type_decl_left
(
client
,
type_function_get_rettype
(
func
->
type
));
fprintf
(
client
,
" _RetVal;
\n
"
);
}
...
...
@@ -397,7 +398,7 @@ static void write_clientinterfacedecl(type_t *iface)
print_client
(
"{
\n
"
);
indent
++
;
print_client
(
"sizeof(RPC_CLIENT_INTERFACE),
\n
"
);
print_client
(
"{{0x%08
l
x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},
\n
"
,
print_client
(
"{{0x%08x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},
\n
"
,
uuid
->
Data1
,
uuid
->
Data2
,
uuid
->
Data3
,
uuid
->
Data4
[
0
],
uuid
->
Data4
[
1
],
uuid
->
Data4
[
2
],
uuid
->
Data4
[
3
],
uuid
->
Data4
[
4
],
uuid
->
Data4
[
5
],
uuid
->
Data4
[
6
],
uuid
->
Data4
[
7
],
MAJORVERSION
(
ver
),
MINORVERSION
(
ver
));
...
...
tools/widl/header.h
View file @
fcc09608
...
...
@@ -34,8 +34,8 @@ extern int is_declptr(const type_t *t);
extern
const
char
*
get_name
(
const
var_t
*
v
);
extern
void
write_type_left
(
FILE
*
h
,
type_t
*
t
,
int
declonly
);
extern
void
write_type_right
(
FILE
*
h
,
type_t
*
t
,
int
is_field
);
extern
void
write_type_def_or_decl
(
FILE
*
h
,
type_t
*
t
,
int
is_field
,
const
char
*
fmt
,
...);
extern
void
write_type_decl
(
FILE
*
f
,
type_t
*
t
,
const
char
*
fmt
,
...);
extern
void
write_type_def_or_decl
(
FILE
*
h
,
type_t
*
t
,
int
is_field
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
4
,
5
)))
;
extern
void
write_type_decl
(
FILE
*
f
,
type_t
*
t
,
const
char
*
fmt
,
...)
__attribute__
((
format
(
printf
,
3
,
4
)))
;
extern
void
write_type_decl_left
(
FILE
*
f
,
type_t
*
t
);
extern
int
needs_space_after
(
type_t
*
t
);
extern
int
is_object
(
const
attr_list_t
*
list
);
...
...
tools/widl/proxy.c
View file @
fcc09608
...
...
@@ -50,6 +50,7 @@ static int indent = 0;
/* FIXME: support generation of stubless proxies */
static
void
print_proxy
(
const
char
*
format
,
...
)
__attribute__
((
format
(
printf
,
1
,
2
)));
static
void
print_proxy
(
const
char
*
format
,
...
)
{
va_list
va
;
...
...
@@ -325,7 +326,7 @@ static void gen_proxy(type_t *iface, const var_t *func, int idx,
print_proxy
(
"struct __proxy_frame __f, * const __frame = &__f;
\n
"
);
/* local variables */
if
(
has_ret
)
{
print_proxy
(
""
);
print_proxy
(
"
%s"
,
"
"
);
write_type_decl_left
(
proxy
,
type_function_get_rettype
(
func
->
type
));
print_proxy
(
" _RetVal;
\n
"
);
}
...
...
@@ -481,8 +482,7 @@ static void gen_stub(type_t *iface, const var_t *func, const char *cas,
print_proxy
(
"*_pdwStubPhase = STUB_CALL_SERVER;
\n
"
);
fprintf
(
proxy
,
"
\n
"
);
print_proxy
(
""
);
if
(
has_ret
)
fprintf
(
proxy
,
"__frame->_RetVal = "
);
print_proxy
(
"%s"
,
has_ret
?
"__frame->_RetVal = "
:
""
);
if
(
cas
)
fprintf
(
proxy
,
"%s_%s_Stub"
,
iface
->
name
,
cas
);
else
fprintf
(
proxy
,
"__frame->_This->lpVtbl->%s"
,
get_name
(
func
));
fprintf
(
proxy
,
"(__frame->_This"
);
...
...
@@ -651,7 +651,7 @@ static void write_proxy(type_t *iface, unsigned int *proc_offset)
print_proxy
(
"static const CINTERFACE_PROXY_VTABLE(%d) _%sProxyVtbl =
\n
"
,
count
,
iface
->
name
);
print_proxy
(
"{
\n
"
);
indent
++
;
print_proxy
(
"{
\n
"
,
iface
->
name
);
print_proxy
(
"{
\n
"
);
indent
++
;
print_proxy
(
"&IID_%s,
\n
"
,
iface
->
name
);
indent
--
;
...
...
@@ -686,7 +686,7 @@ static void write_proxy(type_t *iface, unsigned int *proc_offset)
print_proxy
(
"%d,
\n
"
,
count
);
print_proxy
(
"&%s_table[-3],
\n
"
,
iface
->
name
);
indent
--
;
print_proxy
(
"},
\n
"
,
iface
->
name
);
print_proxy
(
"},
\n
"
);
print_proxy
(
"{
\n
"
);
indent
++
;
print_proxy
(
"CStdStubBuffer_%s
\n
"
,
need_delegation_indirect
(
iface
)
?
"DELEGATING_METHODS"
:
"METHODS"
);
...
...
tools/widl/server.c
View file @
fcc09608
...
...
@@ -40,6 +40,7 @@ static FILE* server;
static
int
indent
=
0
;
static
void
print_server
(
const
char
*
format
,
...)
__attribute__
((
format
(
printf
,
1
,
2
)));
static
void
print_server
(
const
char
*
format
,
...)
{
va_list
va
;
...
...
@@ -155,11 +156,9 @@ static void write_function_stubs(type_t *iface, unsigned int *proc_offset)
assign_stub_out_args
(
server
,
indent
,
func
,
"__frame->"
);
/* Call the real server function */
if
(
!
is_void
(
type_function_get_rettype
(
func
->
type
)))
print_server
(
"__frame->_RetVal = "
);
else
print_server
(
""
);
fprintf
(
server
,
"%s%s"
,
prefix_server
,
get_name
(
func
));
print_server
(
"%s%s%s"
,
is_void
(
type_function_get_rettype
(
func
->
type
))
?
""
:
"__frame->_RetVal = "
,
prefix_server
,
get_name
(
func
));
if
(
type_get_function_args
(
func
->
type
))
{
...
...
@@ -335,7 +334,7 @@ static void write_serverinterfacedecl(type_t *iface)
print_server
(
"{
\n
"
);
indent
++
;
print_server
(
"sizeof(RPC_SERVER_INTERFACE),
\n
"
);
print_server
(
"{{0x%08
l
x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},
\n
"
,
print_server
(
"{{0x%08x,0x%04x,0x%04x,{0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x,0x%02x}},{%d,%d}},
\n
"
,
uuid
->
Data1
,
uuid
->
Data2
,
uuid
->
Data3
,
uuid
->
Data4
[
0
],
uuid
->
Data4
[
1
],
uuid
->
Data4
[
2
],
uuid
->
Data4
[
3
],
uuid
->
Data4
[
4
],
uuid
->
Data4
[
5
],
uuid
->
Data4
[
6
],
uuid
->
Data4
[
7
],
MAJORVERSION
(
ver
),
MINORVERSION
(
ver
));
...
...
tools/widl/typegen.c
View file @
fcc09608
...
...
@@ -551,6 +551,7 @@ static const char *get_context_handle_type_name(const type_t *type)
} \
while (0)
static
void
print_file
(
FILE
*
file
,
int
indent
,
const
char
*
format
,
...)
__attribute__
((
format
(
printf
,
3
,
4
)));
static
void
print_file
(
FILE
*
file
,
int
indent
,
const
char
*
format
,
...)
{
va_list
va
;
...
...
@@ -824,8 +825,8 @@ static unsigned int write_conf_or_var_desc(FILE *file, const type_t *structure,
print_file
(
file
,
2
,
"0x%x, /* Corr desc: constant, val = %ld */
\n
"
,
RPC_FC_CONSTANT_CONFORMANCE
,
expr
->
cval
);
print_file
(
file
,
2
,
"0x%
x,
\n
"
,
expr
->
cval
&
~
USHRT_MAX
);
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\n
"
,
expr
->
cval
&
USHRT_MAX
);
print_file
(
file
,
2
,
"0x%
lx,
\n
"
,
expr
->
cval
>>
16
);
print_file
(
file
,
2
,
"NdrFcShort(0x%
l
x),
\n
"
,
expr
->
cval
&
USHRT_MAX
);
return
4
;
}
...
...
@@ -1263,11 +1264,11 @@ static void write_user_tfs(FILE *file, type_t *type, unsigned int *tfsoff)
print_file
(
file
,
2
,
"0x%x,
\t
/* Alignment= %d, Flags= %02x */
\n
"
,
flags
|
(
align
-
1
),
align
-
1
,
flags
);
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Function offset= %hu */
\n
"
,
funoff
,
funoff
);
print_file
(
file
,
2
,
"NdrFcShort(0x%
lx),
\t
/* %l
u */
\n
"
,
size
,
size
);
print_file
(
file
,
2
,
"NdrFcShort(0x%
lx),
\t
/* %l
u */
\n
"
,
usize
,
usize
);
print_file
(
file
,
2
,
"NdrFcShort(0x%
x),
\t
/* %
u */
\n
"
,
size
,
size
);
print_file
(
file
,
2
,
"NdrFcShort(0x%
x),
\t
/* %
u */
\n
"
,
usize
,
usize
);
*
tfsoff
+=
8
;
reloff
=
absoff
-
*
tfsoff
;
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%
l
u) */
\n
"
,
reloff
,
reloff
,
absoff
);
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%u) */
\n
"
,
reloff
,
reloff
,
absoff
);
*
tfsoff
+=
2
;
}
...
...
@@ -1309,7 +1310,7 @@ static void write_member_type(FILE *file, const type_t *cont,
print_file
(
file
,
2
,
"0x4c,
\t
/* FC_EMBEDDED_COMPLEX */
\n
"
);
/* FIXME: actually compute necessary padding */
print_file
(
file
,
2
,
"0x0,
\t
/* FIXME: padding */
\n
"
);
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%
l
u) */
\n
"
,
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%u) */
\n
"
,
reloff
,
reloff
,
absoff
);
*
tfsoff
+=
4
;
}
...
...
@@ -1917,12 +1918,12 @@ static unsigned int write_array_tfs(FILE *file, const attr_list_t *attrs, type_t
{
if
(
real_type
==
RPC_FC_LGFARRAY
||
real_type
==
RPC_FC_LGVARRAY
)
{
print_file
(
file
,
2
,
"NdrFcLong(0x%x),
\t
/* %
l
u */
\n
"
,
size
,
size
);
print_file
(
file
,
2
,
"NdrFcLong(0x%x),
\t
/* %u */
\n
"
,
size
,
size
);
*
typestring_offset
+=
4
;
}
else
{
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %
l
u */
\n
"
,
size
,
size
);
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %u */
\n
"
,
size
,
size
);
*
typestring_offset
+=
2
;
}
...
...
@@ -1939,16 +1940,16 @@ static unsigned int write_array_tfs(FILE *file, const attr_list_t *attrs, type_t
if
(
real_type
==
RPC_FC_LGVARRAY
)
{
print_file
(
file
,
2
,
"NdrFcLong(0x%x),
\t
/* %
l
u */
\n
"
,
dim
,
dim
);
print_file
(
file
,
2
,
"NdrFcLong(0x%x),
\t
/* %u */
\n
"
,
dim
,
dim
);
*
typestring_offset
+=
4
;
}
else
{
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %
l
u */
\n
"
,
dim
,
dim
);
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %u */
\n
"
,
dim
,
dim
);
*
typestring_offset
+=
2
;
}
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %
l
u */
\n
"
,
elsize
,
elsize
);
print_file
(
file
,
2
,
"NdrFcShort(0x%x),
\t
/* %u */
\n
"
,
elsize
,
elsize
);
*
typestring_offset
+=
2
;
}
...
...
@@ -2115,7 +2116,7 @@ static unsigned int write_struct_tfs(FILE *file, type_t *type,
{
unsigned
int
absoff
=
array
->
type
->
typestring_offset
;
short
reloff
=
absoff
-
*
tfsoff
;
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%
l
u) */
\n
"
,
print_file
(
file
,
2
,
"NdrFcShort(0x%hx),
\t
/* Offset= %hd (%u) */
\n
"
,
reloff
,
reloff
,
absoff
);
*
tfsoff
+=
2
;
}
...
...
@@ -2348,7 +2349,7 @@ static unsigned int write_union_tfs(FILE *file, type_t *type, unsigned int *tfso
/* MIDL doesn't check for duplicate cases, even though that seems
like a reasonable thing to do, it just dumps them to the TFS
like we're going to do here. */
print_file
(
file
,
2
,
"NdrFcLong(0x%
x),
\t
/* %
d */
\n
"
,
c
->
cval
,
c
->
cval
);
print_file
(
file
,
2
,
"NdrFcLong(0x%
lx),
\t
/* %l
d */
\n
"
,
c
->
cval
,
c
->
cval
);
*
tfsoff
+=
4
;
write_branch_type
(
file
,
ft
,
tfsoff
);
}
...
...
@@ -2402,7 +2403,7 @@ static unsigned int write_ip_tfs(FILE *file, const attr_list_t *attrs, type_t *t
print_start_tfs_comment
(
file
,
type
,
start_offset
);
print_file
(
file
,
2
,
"0x2f,
\t
/* FC_IP */
\n
"
);
print_file
(
file
,
2
,
"0x5a,
\t
/* FC_CONSTANT_IID */
\n
"
);
print_file
(
file
,
2
,
"NdrFcLong(0x%08
l
x),
\n
"
,
uuid
->
Data1
);
print_file
(
file
,
2
,
"NdrFcLong(0x%08x),
\n
"
,
uuid
->
Data1
);
print_file
(
file
,
2
,
"NdrFcShort(0x%04x),
\n
"
,
uuid
->
Data2
);
print_file
(
file
,
2
,
"NdrFcShort(0x%04x),
\n
"
,
uuid
->
Data3
);
for
(
i
=
0
;
i
<
8
;
++
i
)
...
...
@@ -2964,11 +2965,9 @@ void print_phase_basetype(FILE *file, int indent, const char *local_var_prefix,
print_file
(
file
,
indent
,
"{
\n
"
);
print_file
(
file
,
indent
+
1
,
"RpcRaiseException(RPC_X_BAD_STUB_DATA);
\n
"
);
print_file
(
file
,
indent
,
"}
\n
"
);
if
(
pass
==
PASS_IN
||
pass
==
PASS_RETURN
)
print_file
(
file
,
indent
,
""
);
else
print_file
(
file
,
indent
,
"*"
);
fprintf
(
file
,
"%s%s"
,
local_var_prefix
,
varname
);
print_file
(
file
,
indent
,
"%s%s%s"
,
(
pass
==
PASS_IN
||
pass
==
PASS_RETURN
)
?
""
:
"*"
,
local_var_prefix
,
varname
);
if
(
pass
==
PASS_IN
&&
is_ptr
(
type
))
fprintf
(
file
,
" = ("
);
else
...
...
@@ -3360,7 +3359,7 @@ void declare_stub_args( FILE *file, int indent, const var_t *func )
/* declare return value '_RetVal' */
if
(
!
is_void
(
type_function_get_rettype
(
func
->
type
)))
{
print_file
(
file
,
indent
,
""
);
print_file
(
file
,
indent
,
"
%s"
,
"
"
);
write_type_decl_left
(
file
,
type_function_get_rettype
(
func
->
type
));
fprintf
(
file
,
" _RetVal;
\n
"
);
}
...
...
@@ -3384,7 +3383,7 @@ void declare_stub_args( FILE *file, int indent, const var_t *func )
if
(
!
in_attr
&&
!
is_conformant_array
(
var
->
type
)
&&
!
is_string
)
{
type_t
*
type_to_print
;
print_file
(
file
,
indent
,
""
);
print_file
(
file
,
indent
,
"
%s"
,
"
"
);
if
(
var
->
type
->
declarray
)
type_to_print
=
var
->
type
;
else
...
...
@@ -3393,7 +3392,7 @@ void declare_stub_args( FILE *file, int indent, const var_t *func )
fprintf
(
file
,
";
\n
"
);
}
print_file
(
file
,
indent
,
""
);
print_file
(
file
,
indent
,
"
%s"
,
"
"
);
write_type_decl_left
(
file
,
var
->
type
);
fprintf
(
file
,
" "
);
if
(
var
->
type
->
declarray
)
{
...
...
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