Alexandre Julliard : widl: Allow using fixed size arrays as strings.

Alexandre Julliard julliard at winehq.org
Thu May 26 10:56:25 CDT 2011


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed May 25 19:34:26 2011 +0200

widl: Allow using fixed size arrays as strings.

---

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

diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 3850e65..fc1076f 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -2560,11 +2560,14 @@ 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_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);
+                if (is_array(type))
+                {
+                    /* needs conformance or fixed dimension */
+                    if (type_array_has_conformance(type) &&
+                        type_array_get_conformance(type)->type != EXPR_VOID) break;
+                    if (!type_array_has_conformance(type) && type_array_get_dim(type)) break;
+                }
+                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