widl: Don't output stubs for interfaces included in a typelib.
This commit is contained in:
parent
cd7ccebb9b
commit
8e15db40a8
|
@ -472,8 +472,6 @@ static void write_client_ifaces(const statement_list_t *stmts, int expr_eval_rou
|
||||||
write_stubdescriptor(iface, expr_eval_routines);
|
write_stubdescriptor(iface, expr_eval_routines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (stmt->type == STMT_LIBRARY)
|
|
||||||
write_client_ifaces(stmt->u.lib->stmts, expr_eval_routines, proc_offset);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -987,8 +987,6 @@ static void write_local_stubs_stmts(FILE *local_stubs, const statement_list_t *s
|
||||||
{
|
{
|
||||||
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||||
write_locals(local_stubs, stmt->u.type, TRUE);
|
write_locals(local_stubs, stmt->u.type, TRUE);
|
||||||
else if (stmt->type == STMT_LIBRARY)
|
|
||||||
write_local_stubs_stmts(local_stubs, stmt->u.lib->stmts);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -754,12 +754,7 @@ static int does_any_iface(const statement_list_t *stmts, type_pred_t pred)
|
||||||
if (stmts)
|
if (stmts)
|
||||||
LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry)
|
LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry)
|
||||||
{
|
{
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||||
{
|
|
||||||
if (does_any_iface(stmt->u.lib->stmts, pred))
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
|
||||||
{
|
{
|
||||||
if (pred(stmt->u.type))
|
if (pred(stmt->u.type))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -834,9 +829,7 @@ static void write_proxy_stmts(const statement_list_t *stmts, unsigned int *proc_
|
||||||
const statement_t *stmt;
|
const statement_t *stmt;
|
||||||
if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
||||||
{
|
{
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||||
write_proxy_stmts(stmt->u.lib->stmts, proc_offset);
|
|
||||||
else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
|
||||||
{
|
{
|
||||||
if (need_proxy(stmt->u.type))
|
if (need_proxy(stmt->u.type))
|
||||||
write_proxy(stmt->u.type, proc_offset);
|
write_proxy(stmt->u.type, proc_offset);
|
||||||
|
@ -860,9 +853,7 @@ static void build_iface_list( const statement_list_t *stmts, type_t **ifaces[],
|
||||||
if (!stmts) return;
|
if (!stmts) return;
|
||||||
LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
||||||
{
|
{
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||||
build_iface_list(stmt->u.lib->stmts, ifaces, count);
|
|
||||||
else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
|
||||||
{
|
{
|
||||||
type_t *iface = stmt->u.type;
|
type_t *iface = stmt->u.type;
|
||||||
if (type_iface_get_inherit(iface) && need_proxy(iface))
|
if (type_iface_get_inherit(iface) && need_proxy(iface))
|
||||||
|
|
|
@ -463,9 +463,7 @@ static void write_server_stmts(const statement_list_t *stmts, int expr_eval_rout
|
||||||
const statement_t *stmt;
|
const statement_t *stmt;
|
||||||
if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, const statement_t, entry )
|
||||||
{
|
{
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
||||||
write_server_stmts(stmt->u.lib->stmts, expr_eval_routines, proc_offset);
|
|
||||||
else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE)
|
|
||||||
{
|
{
|
||||||
type_t *iface = stmt->u.type;
|
type_t *iface = stmt->u.type;
|
||||||
if (!need_stub(iface))
|
if (!need_stub(iface))
|
||||||
|
|
|
@ -1488,8 +1488,6 @@ static void write_procformatstring_stmts(FILE *file, int indent, const statement
|
||||||
write_procformatstring_func( file, indent, iface, func, offset, count++ );
|
write_procformatstring_func( file, indent, iface, func, offset, count++ );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (stmt->type == STMT_LIBRARY)
|
|
||||||
write_procformatstring_stmts(file, indent, stmt->u.lib->stmts, pred, offset);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3624,12 +3622,7 @@ static unsigned int process_tfs_stmts(FILE *file, const statement_list_t *stmts,
|
||||||
const type_t *iface;
|
const type_t *iface;
|
||||||
const statement_t *stmt_func;
|
const statement_t *stmt_func;
|
||||||
|
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE)
|
||||||
{
|
|
||||||
process_tfs_stmts(file, stmt->u.lib->stmts, pred, typeformat_offset);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
iface = stmt->u.type;
|
iface = stmt->u.type;
|
||||||
|
@ -4510,12 +4503,7 @@ unsigned int get_size_procformatstring(const statement_list_t *stmts, type_pred_
|
||||||
const type_t *iface;
|
const type_t *iface;
|
||||||
const statement_t *stmt_func;
|
const statement_t *stmt_func;
|
||||||
|
|
||||||
if (stmt->type == STMT_LIBRARY)
|
if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE)
|
||||||
{
|
|
||||||
size += get_size_procformatstring(stmt->u.lib->stmts, pred) - 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (stmt->type != STMT_TYPE || type_get_type(stmt->u.type) != TYPE_INTERFACE)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
iface = stmt->u.type;
|
iface = stmt->u.type;
|
||||||
|
|
Loading…
Reference in New Issue