Jacek Caban : widl: Default to input param if [out] nor [in] attribut is specified in get_contexthandle_flags.

Alexandre Julliard julliard at winehq.org
Thu Jan 24 14:42:52 CST 2019


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jan 24 13:38:51 2019 +0100

widl: Default to input param if [out] nor [in] attribut is specified in get_contexthandle_flags.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tools/widl/typegen.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index 0fe3a22..7a81277 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -446,6 +446,7 @@ static unsigned char get_contexthandle_flags( const type_t *iface, const attr_li
                                               const type_t *type, int is_return )
 {
     unsigned char flags = 0;
+    int is_out;
 
     if (is_attr(iface->attrs, ATTR_STRICTCONTEXTHANDLE)) flags |= NDR_STRICT_CONTEXT_HANDLE;
 
@@ -456,12 +457,13 @@ static unsigned char get_contexthandle_flags( const type_t *iface, const attr_li
 
     if (is_return) return flags | HANDLE_PARAM_IS_OUT | HANDLE_PARAM_IS_RETURN;
 
-    if (is_attr(attrs, ATTR_IN))
+    is_out = is_attr(attrs, ATTR_OUT);
+    if (is_attr(attrs, ATTR_IN) || !is_out)
     {
         flags |= HANDLE_PARAM_IS_IN;
-        if (!is_attr(attrs, ATTR_OUT)) flags |= NDR_CONTEXT_HANDLE_CANNOT_BE_NULL;
+        if (!is_out) flags |= NDR_CONTEXT_HANDLE_CANNOT_BE_NULL;
     }
-    if (is_attr(attrs, ATTR_OUT)) flags |= HANDLE_PARAM_IS_OUT;
+    if (is_out) flags |= HANDLE_PARAM_IS_OUT;
 
     return flags;
 }




More information about the wine-cvs mailing list