[ros-diffs] [hpoussin] 35039: Support nested structures

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Sat Aug 2 17:34:14 CEST 2008


Author: hpoussin
Date: Sat Aug  2 10:34:14 2008
New Revision: 35039

URL: http://svn.reactos.org/svn/reactos?rev=35039&view=rev
Log:
Support nested structures

Modified:
    trunk/reactos/tools/widl/typegen.c
    trunk/reactos/tools/widl/widl_ros.diff

Modified: trunk/reactos/tools/widl/typegen.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/typegen.c?rev=35039&r1=35038&r2=35039&view=diff
==============================================================================
--- trunk/reactos/tools/widl/typegen.c [iso-8859-1] (original)
+++ trunk/reactos/tools/widl/typegen.c [iso-8859-1] Sat Aug  2 10:34:14 2008
@@ -3299,8 +3299,9 @@
         print_file(file, 0, "static void __RPC_USER %s_%sExprEval_%04u(PMIDL_STUB_MESSAGE pStubMsg)\n",
                    iface, name, callback_offset);
         print_file(file, 0, "{\n");
-        print_file (file, 1, "%s *%s = (%s *)(pStubMsg->StackTop - %u);\n",
-                    name, var_name, name, eval->baseoff);
+        print_file (file, 1, "%s%s *%s = (%s%s *)(pStubMsg->StackTop - %u);\n",
+                    is_struct(eval->structure->type) ? "struct " : "", name, var_name,
+                    is_struct(eval->structure->type) ? "struct " : "", name, eval->baseoff);
         print_file(file, 1, "pStubMsg->Offset = 0;\n"); /* FIXME */
         print_file(file, 1, "pStubMsg->MaxCount = (unsigned long)");
         write_struct_expr(file, eval->expr, 1, fields, var_name);

Modified: trunk/reactos/tools/widl/widl_ros.diff
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/widl/widl_ros.diff?rev=35039&r1=35038&r2=35039&view=diff
==============================================================================
--- trunk/reactos/tools/widl/widl_ros.diff [iso-8859-1] (original)
+++ trunk/reactos/tools/widl/widl_ros.diff [iso-8859-1] Sat Aug  2 10:34:14 2008
@@ -46,6 +46,22 @@
      print_server("#include \"%s\"\n", header_name);
      fprintf(server, "\n");
  }
+Index: typegen.c
+===================================================================
+--- typegen.c	(revision 32187)
++++ typegen.c	(working copy)
+@@ -3299,8 +3299,9 @@
+         print_file(file, 0, "static void __RPC_USER %s_%sExprEval_%04u(PMIDL_STUB_MESSAGE pStubMsg)\n",
+                    iface, name, callback_offset);
+         print_file(file, 0, "{\n");
+-        print_file (file, 1, "%s *%s = (%s *)(pStubMsg->StackTop - %u);\n",
+-                    name, var_name, name, eval->baseoff);
++        print_file (file, 1, "%s%s *%s = (%s%s *)(pStubMsg->StackTop - %u);\n",
++                    is_struct(eval->structure->type) ? "struct " : "", name, var_name,
++                    is_struct(eval->structure->type) ? "struct " : "", name, eval->baseoff);
+         print_file(file, 1, "pStubMsg->Offset = 0;\n"); /* FIXME */
+         print_file(file, 1, "pStubMsg->MaxCount = (unsigned long)");
+         write_struct_expr(file, eval->expr, 1, fields, var_name);
 Index: typelib.c
 ===================================================================
 --- typelib.c	(revision 32187)



More information about the Ros-diffs mailing list