Robert Shearman : widl: Support client/server generation for
explicit_handle interfaces
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Jan 31 11:23:29 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 0a2c5b73fdd64ee701e156b143a847f91ceafe5a
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=0a2c5b73fdd64ee701e156b143a847f91ceafe5a
Author: Robert Shearman <rob at codeweavers.com>
Date: Tue Jan 31 18:06:17 2006 +0100
widl: Support client/server generation for explicit_handle interfaces
(based on a patch by Eric Kohl).
---
tools/widl/header.c | 2 +-
tools/widl/typegen.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index a8071b1..ef77308 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -509,7 +509,7 @@ var_t* get_explicit_handle_var(func_t* f
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);
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 2f7824a..221a06c 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -936,6 +936,10 @@ static size_t write_typeformatstring_var
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_
*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
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, in
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);
More information about the wine-cvs
mailing list