Commit 0a2c5b73 authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

widl: Support client/server generation for explicit_handle interfaces

(based on a patch by Eric Kohl).
parent c08e00a9
......@@ -509,7 +509,7 @@ var_t* get_explicit_handle_var(func_t* func)
while (NEXT_LINK(var)) var = NEXT_LINK(var);
while (var)
{
if (var->type->type == RPC_FC_IGNORE)
if (var->type->type == RPC_FC_BIND_PRIMITIVE)
return var;
var = PREV_LINK(var);
......
......@@ -936,6 +936,10 @@ static size_t write_typeformatstring_var(FILE *file, int indent,
case RPC_FC_ENCAPSULATED_UNION:
case RPC_FC_NON_ENCAPSULATED_UNION:
return write_union_tfs(file, var->attrs, type, var->name, typeformat_offset);
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* nothing to do */
return 0;
default:
error("write_typeformatstring_var: Unsupported type 0x%x for variable %s\n", type->type, var->name);
}
......@@ -1071,6 +1075,10 @@ static unsigned int get_required_buffer_size_type(
*alignment = 8;
return 8;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
return 0;
case RPC_FC_STRUCT:
{
size_t size = 0;
......@@ -1268,6 +1276,10 @@ void marshall_arguments(FILE *file, int indent, func_t *func,
case RPC_FC_BOGUS_STRUCT:
ndrtype = "ComplexStruct";
break;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* no marshalling needed */
continue;
default:
error("marshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n",
var->name, var->type->type, var->ptr_level);
......@@ -1439,6 +1451,10 @@ void unmarshall_arguments(FILE *file, int indent, func_t *func,
case RPC_FC_BOGUS_STRUCT:
ndrtype = "ComplexStruct";
break;
case RPC_FC_IGNORE:
case RPC_FC_BIND_PRIMITIVE:
/* no unmarshalling needed */
continue;
default:
error("unmarshall_arguments: Unsupported type: %s (0x%02x, ptr_level: %d)\n",
var->name, var->type->type, var->ptr_level);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment