Rob Shearman : widl: Issue an error if an out parameter is a conformant string.

Alexandre Julliard julliard at winehq.org
Tue Mar 23 12:12:50 CDT 2010


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

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Tue Mar 23 13:33:32 2010 +0000

widl: Issue an error if an out parameter is a conformant string.

---

 tools/widl/parser.y |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index a6b6bce..5c021ae 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -2527,10 +2527,11 @@ static void check_remoting_args(const var_t *func)
                 error_loc_info(&arg->loc_info, "out interface pointer \'%s\' of function \'%s\' is not a double pointer\n", arg->name, funcname);
                 break;
             case TGT_STRING:
-                if (!is_array(type))
-                {
-                    /* FIXME */
-                }
+                if (is_ptr(type) ||
+                    (is_array(type) &&
+                     (!type_array_has_conformance(type) ||
+                      type_array_get_conformance(type)->type == EXPR_VOID)))
+                    error_loc_info(&arg->loc_info, "out parameter \'%s\' of function \'%s\' cannot be an unsized string\n", arg->name, funcname);
                 break;
             case TGT_INVALID:
                 /* already error'd before we get here */




More information about the wine-cvs mailing list