Alexandre Julliard : widl: Do not make the stub vtbl const for delegating interfaces since it needs to be patched up at run-time .

Alexandre Julliard julliard at winehq.org
Mon Dec 1 07:34:02 CST 2008


Module: wine
Branch: master
Commit: 584d2c91182c5bcb4606adbbc7f3e0164f667e8d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=584d2c91182c5bcb4606adbbc7f3e0164f667e8d

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec  1 11:30:05 2008 +0100

widl: Do not make the stub vtbl const for delegating interfaces since it needs to be patched up at run-time.

---

 tools/widl/proxy.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/widl/proxy.c b/tools/widl/proxy.c
index 74bec7b..51a35a6 100644
--- a/tools/widl/proxy.c
+++ b/tools/widl/proxy.c
@@ -607,7 +607,8 @@ static void write_proxy(type_t *iface, unsigned int *proc_offset)
   indent--;
   fprintf(proxy, "};\n");
   print_proxy( "\n");
-  print_proxy( "static const CInterfaceStubVtbl _%sStubVtbl =\n", iface->name);
+  print_proxy( "static %sCInterfaceStubVtbl _%sStubVtbl =\n",
+               need_delegation(iface) ? "" : "const ", iface->name);
   print_proxy( "{\n");
   indent++;
   print_proxy( "{\n");
@@ -784,7 +785,7 @@ void write_proxies(const statement_list_t *stmts)
 
   fprintf(proxy, "static const CInterfaceStubVtbl* const _%s_StubVtblList[] =\n", file_id);
   fprintf(proxy, "{\n");
-  write_proxy_iface_name_format(stmts, "    (const CInterfaceStubVtbl*)&_%sStubVtbl,\n");
+  write_proxy_iface_name_format(stmts, "    &_%sStubVtbl,\n");
   fprintf(proxy, "    0\n");
   fprintf(proxy, "};\n");
   fprintf(proxy, "\n");




More information about the wine-cvs mailing list