Module: wine Branch: master Commit: 9b16916ed13e0b26ab3f375f2deb5cb146fda1b3 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9b16916ed13e0b26ab3f375f...
Author: Dan Hipschman dsh@linux.ucla.edu Date: Thu Aug 17 18:08:38 2006 -0700
widl: Allow format-string functions to work with objects.
---
tools/widl/client.c | 6 +++--- tools/widl/proxy.c | 6 +++--- tools/widl/server.c | 6 +++--- tools/widl/typegen.c | 22 +++++++++++----------- tools/widl/typegen.h | 10 +++++----- 5 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/tools/widl/client.c b/tools/widl/client.c index 3bc47b2..64cf8c5 100644 --- a/tools/widl/client.c +++ b/tools/widl/client.c @@ -440,7 +440,7 @@ void write_client(ifref_t *ifaces) if (!client) return;
- write_formatstringsdecl(client, indent, ifaces); + write_formatstringsdecl(client, indent, ifaces, 0);
for (; iface; iface = PREV_LINK(iface)) { @@ -479,8 +479,8 @@ void write_client(ifref_t *ifaces)
fprintf(client, "\n");
- write_procformatstring(client, ifaces); - write_typeformatstring(client, ifaces); + write_procformatstring(client, ifaces, 0); + write_typeformatstring(client, ifaces, 0);
fclose(client); } diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c index 608c856..2c4fa10 100644 --- a/tools/widl/proxy.c +++ b/tools/widl/proxy.c @@ -110,7 +110,7 @@ static void init_proxy(ifref_t *ifaces) print_proxy( "\n"); print_proxy( "#include "%s"\n", header_name); print_proxy( "\n"); - write_formatstringsdecl(proxy, indent, ifaces); + write_formatstringsdecl(proxy, indent, ifaces, 1); write_stubdescproto(); }
@@ -1031,8 +1031,8 @@ void write_proxies(ifref_t *ifaces) print_proxy( "#error Currently only Wine and WIN32 are supported.\n"); print_proxy( "#endif\n"); print_proxy( "\n"); - write_procformatstring(proxy, ifaces); - write_typeformatstring(proxy, ifaces); + write_procformatstring(proxy, ifaces, 1); + write_typeformatstring(proxy, ifaces, 1);
fprintf(proxy, "const CInterfaceProxyVtbl* _%s_ProxyVtblList[] =\n", file_id); fprintf(proxy, "{\n"); diff --git a/tools/widl/server.c b/tools/widl/server.c index 69eddb8..9f6c5ac 100644 --- a/tools/widl/server.c +++ b/tools/widl/server.c @@ -582,7 +582,7 @@ void write_server(ifref_t *ifaces) if (!server) return;
- write_formatstringsdecl(server, indent, ifaces); + write_formatstringsdecl(server, indent, ifaces, 0);
for (; iface; iface = PREV_LINK(iface)) { @@ -620,8 +620,8 @@ void write_server(ifref_t *ifaces)
fprintf(server, "\n");
- write_procformatstring(server, ifaces); - write_typeformatstring(server, ifaces); + write_procformatstring(server, ifaces, 0); + write_typeformatstring(server, ifaces, 0);
fclose(server); } diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 632bc8a..2d7e07f 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -142,13 +142,13 @@ static void write_formatdesc(FILE *f, in print_file(f, indent, "\n"); }
-void write_formatstringsdecl(FILE *f, int indent, ifref_t *ifaces) +void write_formatstringsdecl(FILE *f, int indent, ifref_t *ifaces, int for_objects) { print_file(f, indent, "#define TYPE_FORMAT_STRING_SIZE %d\n", - get_size_typeformatstring(ifaces)); + get_size_typeformatstring(ifaces, for_objects));
print_file(f, indent, "#define PROC_FORMAT_STRING_SIZE %d\n", - get_size_procformatstring(ifaces)); + get_size_procformatstring(ifaces, for_objects));
fprintf(f, "\n"); write_formatdesc(f, indent, "TYPE"); @@ -275,7 +275,7 @@ #undef CASE_BASETYPE return size; }
-void write_procformatstring(FILE *file, const ifref_t *ifaces) +void write_procformatstring(FILE *file, const ifref_t *ifaces, int for_objects) { const ifref_t *iface = ifaces; int indent = 0; @@ -293,7 +293,7 @@ void write_procformatstring(FILE *file,
for (; iface; iface = PREV_LINK(iface)) { - if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) + if (for_objects != is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) continue;
if (iface->iface->funcs) @@ -1385,7 +1385,7 @@ #define CASE_BASETYPE(fctype) \ }
-void write_typeformatstring(FILE *file, const ifref_t *ifaces) +void write_typeformatstring(FILE *file, const ifref_t *ifaces, int for_objects) { int indent = 0; var_t *var; @@ -1405,7 +1405,7 @@ void write_typeformatstring(FILE *file,
for (; iface; iface = PREV_LINK(iface)) { - if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) + if (for_objects != is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) continue;
if (iface->iface->funcs) @@ -1900,7 +1900,7 @@ size_t get_size_typeformatstring_var(con return type_offset; }
-size_t get_size_procformatstring(const ifref_t *ifaces) +size_t get_size_procformatstring(const ifref_t *ifaces, int for_objects) { const ifref_t *iface = ifaces; size_t size = 1; @@ -1911,7 +1911,7 @@ size_t get_size_procformatstring(const i
for (; iface; iface = PREV_LINK(iface)) { - if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) + if (for_objects != is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) continue;
if (iface->iface->funcs) @@ -1946,7 +1946,7 @@ size_t get_size_procformatstring(const i return size; }
-size_t get_size_typeformatstring(const ifref_t *ifaces) +size_t get_size_typeformatstring(const ifref_t *ifaces, int for_objects) { const ifref_t *iface = ifaces; size_t size = 3; @@ -1957,7 +1957,7 @@ size_t get_size_typeformatstring(const i
for (; iface; iface = PREV_LINK(iface)) { - if (is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) + if (for_objects != is_object(iface->iface->attrs) || is_local(iface->iface->attrs)) continue;
if (iface->iface->funcs) diff --git a/tools/widl/typegen.h b/tools/widl/typegen.h index 4509032..d4885fb 100644 --- a/tools/widl/typegen.h +++ b/tools/widl/typegen.h @@ -35,16 +35,16 @@ enum remoting_phase PHASE_FREE };
-void write_formatstringsdecl(FILE *f, int indent, ifref_t *ifaces); -void write_procformatstring(FILE *file, const ifref_t *ifaces); -void write_typeformatstring(FILE *file, const ifref_t *ifaces); +void write_formatstringsdecl(FILE *f, int indent, ifref_t *ifaces, int for_objects); +void write_procformatstring(FILE *file, const ifref_t *ifaces, int for_objects); +void write_typeformatstring(FILE *file, const ifref_t *ifaces, int for_objects); size_t get_type_memsize(const type_t *type); unsigned int get_required_buffer_size(const var_t *var, unsigned int *alignment, enum pass pass); void print_phase_basetype(FILE *file, int indent, enum remoting_phase phase, enum pass pass, const var_t *var, const char *varname); void write_remoting_arguments(FILE *file, int indent, const func_t *func, unsigned int *type_offset, enum pass pass, enum remoting_phase phase); size_t get_size_procformatstring_var(const var_t *var); size_t get_size_typeformatstring_var(const var_t *var); -size_t get_size_procformatstring(const ifref_t *ifaces); -size_t get_size_typeformatstring(const ifref_t *ifaces); +size_t get_size_procformatstring(const ifref_t *ifaces, int for_objects); +size_t get_size_typeformatstring(const ifref_t *ifaces, int for_objects); int write_expr_eval_routines(FILE *file, const char *iface); void write_expr_eval_routine_list(FILE *file, const char *iface);