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
d676d3be
Commit
d676d3be
authored
Apr 30, 2007
by
Dan Hipschman
Committed by
Alexandre Julliard
May 01, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
widl: Get rid of the tname field of var_t, simplify code.
parent
1ecbb016
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
37 additions
and
38 deletions
+37
-38
client.c
tools/widl/client.c
+2
-2
header.c
tools/widl/header.c
+15
-16
header.h
tools/widl/header.h
+1
-1
parser.y
tools/widl/parser.y
+3
-4
proxy.c
tools/widl/proxy.c
+2
-2
typegen.c
tools/widl/typegen.c
+8
-8
typelib.c
tools/widl/typelib.c
+4
-3
widltypes.h
tools/widl/widltypes.h
+0
-1
write_msft.c
tools/widl/write_msft.c
+2
-1
No files found.
tools/widl/client.c
View file @
d676d3be
...
...
@@ -113,7 +113,7 @@ static void write_function_stubs(type_t *iface, unsigned int *proc_offset, unsig
}
}
write_type
(
client
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
client
,
def
->
type
,
def
);
fprintf
(
client
,
" "
);
write_prefix_name
(
client
,
prefix_client
,
def
);
fprintf
(
client
,
"(
\n
"
);
...
...
@@ -133,7 +133,7 @@ static void write_function_stubs(type_t *iface, unsigned int *proc_offset, unsig
if
(
!
is_void
(
def
->
type
,
NULL
))
{
print_client
(
""
);
write_type
(
client
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
client
,
def
->
type
,
def
);
fprintf
(
client
,
" _RetVal;
\n
"
);
}
...
...
tools/widl/header.c
View file @
d676d3be
...
...
@@ -159,7 +159,7 @@ static void write_field(FILE *h, var_t *v)
if
(
!
v
)
return
;
if
(
v
->
type
)
{
indent
(
h
,
0
);
write_type
(
h
,
v
->
type
,
NULL
,
v
->
tname
);
write_type
(
h
,
v
->
type
,
NULL
);
if
(
get_name
(
v
))
{
fprintf
(
h
,
" "
);
write_pident
(
h
,
v
);
...
...
@@ -220,14 +220,13 @@ static int needs_space_after(type_t *t)
return
t
->
kind
==
TKIND_ALIAS
||
!
is_ptr
(
t
);
}
void
write_type
(
FILE
*
h
,
type_t
*
t
,
const
var_t
*
v
,
const
char
*
n
)
void
write_type
(
FILE
*
h
,
type_t
*
t
,
const
var_t
*
v
)
{
int
c
;
if
(
t
->
is_const
)
fprintf
(
h
,
"const "
);
if
(
n
)
fprintf
(
h
,
"%s"
,
n
);
else
if
(
t
->
kind
==
TKIND_ALIAS
)
fprintf
(
h
,
"%s"
,
t
->
name
);
if
(
t
->
kind
==
TKIND_ALIAS
)
fprintf
(
h
,
"%s"
,
t
->
name
);
else
{
if
(
t
->
sign
>
0
)
fprintf
(
h
,
"signed "
);
else
if
(
t
->
sign
<
0
)
fprintf
(
h
,
"unsigned "
);
...
...
@@ -279,7 +278,7 @@ void write_type(FILE *h, type_t *t, const var_t *v, const char *n)
case
RPC_FC_UP
:
case
RPC_FC_FP
:
case
RPC_FC_OP
:
if
(
t
->
ref
)
write_type
(
h
,
t
->
ref
,
NULL
,
t
->
name
);
if
(
t
->
ref
)
write_type
(
h
,
t
->
ref
,
NULL
);
fprintf
(
h
,
"%s*"
,
needs_space_after
(
t
->
ref
)
?
" "
:
""
);
break
;
default:
...
...
@@ -359,7 +358,7 @@ void write_user_types(void)
void
write_typedef
(
type_t
*
type
)
{
fprintf
(
header
,
"typedef "
);
write_type
(
header
,
type
->
orig
,
NULL
,
NULL
);
write_type
(
header
,
type
->
orig
,
NULL
);
fprintf
(
header
,
"%s%s;
\n
"
,
needs_space_after
(
type
->
orig
)
?
" "
:
""
,
type
->
name
);
}
...
...
@@ -397,13 +396,13 @@ void write_expr(FILE *h, const expr_t *e, int brackets)
break
;
case
EXPR_CAST
:
fprintf
(
h
,
"("
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
,
e
->
u
.
tref
->
name
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
);
fprintf
(
h
,
")"
);
write_expr
(
h
,
e
->
ref
,
1
);
break
;
case
EXPR_SIZEOF
:
fprintf
(
h
,
"sizeof("
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
,
e
->
u
.
tref
->
name
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
);
fprintf
(
h
,
")"
);
break
;
case
EXPR_SHL
:
...
...
@@ -452,7 +451,7 @@ void write_constdef(const var_t *v)
void
write_externdef
(
const
var_t
*
v
)
{
fprintf
(
header
,
"extern const "
);
write_type
(
header
,
v
->
type
,
NULL
,
v
->
tname
);
write_type
(
header
,
v
->
type
,
NULL
);
if
(
get_name
(
v
))
{
fprintf
(
header
,
" "
);
write_pident
(
header
,
v
);
...
...
@@ -580,7 +579,7 @@ void write_args(FILE *h, const var_list_t *args, const char *name, int method, i
}
else
fprintf
(
h
,
","
);
}
write_type
(
h
,
arg
->
type
,
arg
,
arg
->
tname
);
write_type
(
h
,
arg
->
type
,
arg
);
if
(
arg
->
args
)
{
fprintf
(
h
,
" (STDMETHODCALLTYPE *"
);
...
...
@@ -613,7 +612,7 @@ static void write_cpp_method_def(const type_t *iface)
if
(
!
is_callas
(
def
->
attrs
))
{
indent
(
header
,
0
);
fprintf
(
header
,
"virtual "
);
write_type
(
header
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
header
,
def
->
type
,
def
);
fprintf
(
header
,
" STDMETHODCALLTYPE "
);
write_name
(
header
,
def
);
fprintf
(
header
,
"(
\n
"
);
...
...
@@ -638,7 +637,7 @@ static void do_write_c_method_def(const type_t *iface, const char *name)
const
var_t
*
def
=
cur
->
def
;
if
(
!
is_callas
(
def
->
attrs
))
{
indent
(
header
,
0
);
write_type
(
header
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
header
,
def
->
type
,
def
);
fprintf
(
header
,
" (STDMETHODCALLTYPE *"
);
write_name
(
header
,
def
);
fprintf
(
header
,
")(
\n
"
);
...
...
@@ -671,7 +670,7 @@ static void write_method_proto(const type_t *iface)
if
(
!
is_local
(
def
->
attrs
))
{
/* proxy prototype */
write_type
(
header
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
header
,
def
->
type
,
def
);
fprintf
(
header
,
" CALLBACK %s_"
,
iface
->
name
);
write_name
(
header
,
def
);
fprintf
(
header
,
"_Proxy(
\n
"
);
...
...
@@ -694,14 +693,14 @@ static void write_method_proto(const type_t *iface)
if
(
&
m
->
entry
!=
iface
->
funcs
)
{
const
var_t
*
mdef
=
m
->
def
;
/* proxy prototype - use local prototype */
write_type
(
header
,
mdef
->
type
,
mdef
,
mdef
->
tname
);
write_type
(
header
,
mdef
->
type
,
mdef
);
fprintf
(
header
,
" CALLBACK %s_"
,
iface
->
name
);
write_name
(
header
,
mdef
);
fprintf
(
header
,
"_Proxy(
\n
"
);
write_args
(
header
,
m
->
args
,
iface
->
name
,
1
,
TRUE
);
fprintf
(
header
,
");
\n
"
);
/* stub prototype - use remotable prototype */
write_type
(
header
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
header
,
def
->
type
,
def
);
fprintf
(
header
,
" __RPC_STUB %s_"
,
iface
->
name
);
write_name
(
header
,
mdef
);
fprintf
(
header
,
"_Stub(
\n
"
);
...
...
@@ -720,7 +719,7 @@ static void write_function_proto(const type_t *iface, const func_t *fun, const c
var_t
*
def
=
fun
->
def
;
/* FIXME: do we need to handle call_as? */
write_type
(
header
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
header
,
def
->
type
,
def
);
fprintf
(
header
,
" "
);
write_prefix_name
(
header
,
prefix
,
def
);
fprintf
(
header
,
"(
\n
"
);
...
...
tools/widl/header.h
View file @
d676d3be
...
...
@@ -30,7 +30,7 @@ extern int is_non_void(const expr_list_t *list);
extern
void
write_name
(
FILE
*
h
,
const
var_t
*
v
);
extern
void
write_prefix_name
(
FILE
*
h
,
const
char
*
prefix
,
const
var_t
*
v
);
extern
const
char
*
get_name
(
const
var_t
*
v
);
extern
void
write_type
(
FILE
*
h
,
type_t
*
t
,
const
var_t
*
v
,
const
char
*
n
);
extern
void
write_type
(
FILE
*
h
,
type_t
*
t
,
const
var_t
*
v
);
extern
int
is_object
(
const
attr_list_t
*
list
);
extern
int
is_local
(
const
attr_list_t
*
list
);
extern
const
var_t
*
is_callas
(
const
attr_list_t
*
list
);
...
...
tools/widl/parser.y
View file @
d676d3be
...
...
@@ -297,12 +297,12 @@ int_statements: { $$ = NULL; }
statement: ';' {}
| constdef ';' { if (!parse_only && do_header) { write_constdef($1); } }
| cppquote {}
| enumdef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL
, NULL
); fprintf(header, ";\n\n"); } }
| enumdef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL); fprintf(header, ";\n\n"); } }
| externdef ';' { if (!parse_only && do_header) { write_externdef($1); } }
| import {}
| structdef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL
, NULL
); fprintf(header, ";\n\n"); } }
| structdef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL); fprintf(header, ";\n\n"); } }
| typedef ';' {}
| uniondef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL
, NULL
); fprintf(header, ";\n\n"); } }
| uniondef ';' { if (!parse_only && do_header) { write_type(header, $1, NULL); fprintf(header, ";\n\n"); } }
;
cppquote: tCPPQUOTE '(' aSTRING ')' { if (!parse_only && do_header) fprintf(header, "%s\n", $3); }
...
...
@@ -1240,7 +1240,6 @@ static var_t *make_var(char *name)
v->ptr_level = 0;
v->type = NULL;
v->args = NULL;
v->tname = NULL;
v->attrs = NULL;
v->array = NULL;
v->eval = NULL;
...
...
tools/widl/proxy.c
View file @
d676d3be
...
...
@@ -264,7 +264,7 @@ static void gen_proxy(type_t *iface, const func_t *cur, int idx,
unsigned
int
offset
;
indent
=
0
;
write_type
(
proxy
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
proxy
,
def
->
type
,
def
);
print_proxy
(
" STDMETHODCALLTYPE %s_"
,
iface
->
name
);
write_name
(
proxy
,
def
);
print_proxy
(
"_Proxy(
\n
"
);
...
...
@@ -275,7 +275,7 @@ static void gen_proxy(type_t *iface, const func_t *cur, int idx,
/* local variables */
if
(
has_ret
)
{
print_proxy
(
""
);
write_type
(
proxy
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
proxy
,
def
->
type
,
def
);
print_proxy
(
" _RetVal;
\n
"
);
}
print_proxy
(
"RPC_MESSAGE _RpcMessage;
\n
"
);
...
...
tools/widl/typegen.c
View file @
d676d3be
...
...
@@ -1842,7 +1842,7 @@ void print_phase_basetype(FILE *file, int indent, enum remoting_phase phase,
if
(
phase
==
PHASE_MARSHAL
)
{
print_file
(
file
,
indent
,
"*("
);
write_type
(
file
,
var
->
type
,
NULL
,
var
->
tname
);
write_type
(
file
,
var
->
type
,
NULL
);
if
(
var
->
ptr_level
)
fprintf
(
file
,
" *)_StubMsg.Buffer = *"
);
else
...
...
@@ -1861,12 +1861,12 @@ void print_phase_basetype(FILE *file, int indent, enum remoting_phase phase,
fprintf
(
file
,
" = ("
);
else
fprintf
(
file
,
" = *("
);
write_type
(
file
,
var
->
type
,
NULL
,
var
->
tname
);
write_type
(
file
,
var
->
type
,
NULL
);
fprintf
(
file
,
" *)_StubMsg.Buffer;
\n
"
);
}
print_file
(
file
,
indent
,
"_StubMsg.Buffer += sizeof("
);
write_type
(
file
,
var
->
type
,
NULL
,
var
->
tname
);
write_type
(
file
,
var
->
type
,
NULL
);
fprintf
(
file
,
");
\n
"
);
}
...
...
@@ -2214,13 +2214,13 @@ static void write_struct_expr(FILE *h, const expr_t *e, int brackets,
break
;
case
EXPR_CAST
:
fprintf
(
h
,
"("
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
,
e
->
u
.
tref
->
name
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
);
fprintf
(
h
,
")"
);
write_struct_expr
(
h
,
e
->
ref
,
1
,
fields
,
structvar
);
break
;
case
EXPR_SIZEOF
:
fprintf
(
h
,
"sizeof("
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
,
e
->
u
.
tref
->
name
);
write_type
(
h
,
e
->
u
.
tref
,
NULL
);
fprintf
(
h
,
")"
);
break
;
case
EXPR_SHL
:
...
...
@@ -2271,7 +2271,7 @@ void declare_stub_args( FILE *file, int indent, const func_t *func )
if
(
!
is_void
(
def
->
type
,
NULL
))
{
print_file
(
file
,
indent
,
""
);
write_type
(
file
,
def
->
type
,
def
,
def
->
tname
);
write_type
(
file
,
def
->
type
,
def
);
fprintf
(
file
,
" _RetVal;
\n
"
);
}
...
...
@@ -2293,14 +2293,14 @@ void declare_stub_args( FILE *file, int indent, const func_t *func )
{
int
indirection
;
print_file
(
file
,
indent
,
""
);
write_type
(
file
,
var
->
type
,
NULL
,
var
->
tname
);
write_type
(
file
,
var
->
type
,
NULL
);
for
(
indirection
=
0
;
indirection
<
var
->
ptr_level
-
1
;
indirection
++
)
fprintf
(
file
,
"*"
);
fprintf
(
file
,
" _W%u;
\n
"
,
i
++
);
}
print_file
(
file
,
indent
,
""
);
write_type
(
file
,
var
->
type
,
var
,
var
->
tname
);
write_type
(
file
,
var
->
type
,
var
);
fprintf
(
file
,
" "
);
if
(
var
->
array
)
{
fprintf
(
file
,
"( *"
);
...
...
tools/widl/typelib.c
View file @
d676d3be
...
...
@@ -215,10 +215,11 @@ unsigned short get_type_vt(type_t *t)
unsigned
short
get_var_vt
(
var_t
*
v
)
{
unsigned
short
vt
;
const
char
*
tname
=
v
->
type
->
name
;
chat
(
"get_var_vt:
%p tname %s
\n
"
,
v
,
v
->
tname
);
if
(
v
->
tname
)
{
vt
=
builtin_vt
(
v
->
tname
);
chat
(
"get_var_vt:
var %p type->name %s
\n
"
,
v
,
tname
?
tname
:
"NULL"
);
if
(
tname
)
{
vt
=
builtin_vt
(
tname
);
if
(
vt
)
return
vt
;
}
...
...
tools/widl/widltypes.h
View file @
d676d3be
...
...
@@ -216,7 +216,6 @@ struct _var_t {
array_dims_t
*
array
;
type_t
*
type
;
var_list_t
*
args
;
/* for function pointers */
const
char
*
tname
;
attr_list_t
*
attrs
;
expr_t
*
eval
;
...
...
tools/widl/write_msft.c
View file @
d676d3be
...
...
@@ -1068,7 +1068,8 @@ static int encode_var(
if
(
!
decoded_size
)
decoded_size
=
&
scratch
;
*
decoded_size
=
0
;
chat
(
"encode_var: var %p var->tname %s var->type %p var->ptr_level %d var->type->ref %p
\n
"
,
var
,
var
->
tname
,
var
->
type
,
var
->
ptr_level
,
var
->
type
->
ref
);
chat
(
"encode_var: var %p var->type %p var->type->name %s var->ptr_level %d var->type->ref %p
\n
"
,
var
,
var
->
type
,
var
->
type
->
name
?
var
->
type
->
name
:
"NULL"
,
var
->
ptr_level
,
var
->
type
->
ref
);
if
(
var
->
ptr_level
)
{
int
skip_ptr
;
var
->
ptr_level
--
;
...
...
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