Index: C:/ROS/reactos-clean/reactos/tools/widl/header.h =================================================================== --- tools/widl/header.h (revision 67058) +++ tools/widl/header.h (working copy) @@ -80,20 +80,22 @@ return is_array(t) && type_array_has_conformance(t); } -static inline int last_ptr(const type_t *type) +static inline int last_ptr_or_array(const type_t *type) { - return is_ptr(type) && !is_declptr(type_pointer_get_ref(type)); + const type_t *ref; + if (is_ptr(type)) + ref = type_pointer_get_ref(type); + else if (is_array(type)) + ref = type_array_get_element(type); + else + return 0; + return !is_ptr(ref) && !is_array(ref); } -static inline int last_array(const type_t *type) -{ - return is_array(type) && !is_array(type_array_get_element(type)); -} - static inline int is_string_type(const attr_list_t *attrs, const type_t *type) { return ((is_attr(attrs, ATTR_STRING) || is_aliaschain_attr(type, ATTR_STRING)) - && (last_ptr(type) || last_array(type))); + && last_ptr_or_array(type)); } static inline int is_context_handle(const type_t *type)