[PATCH 04/14] vbscript: Implement ScriptTypeInfo_GetNames.
Jacek Caban
jacek at codeweavers.com
Tue Dec 10 09:35:06 CST 2019
On 12/9/19 4:29 PM, Gabriel Ivăncescu wrote:
> +enum memid_type {
> + memid_invalid,
> + memid_inherited,
> + memid_func,
> + memid_var
> +};
> +
> +static inline enum memid_type get_memid_type(const ScriptTypeInfo *typeinfo, MEMBERID memid)
> +{
> + if (memid <= 0) return memid_invalid;
> + if (memid & DISPID_FUNCTION_MASK)
> + {
> + memid &= ~DISPID_FUNCTION_MASK;
> + if (memid >= typeinfo->func_memid_map_cnt)
> + return memid_inherited;
> + if (typeinfo->func_memid_map[memid] == ~0)
> + return memid_invalid;
> + return memid_func;
> + }
> + if (memid > typeinfo->num_vars)
> + return memid_inherited;
> + return memid_var;
> +}
It seems that could let default ITypeInfo handle invalid IDs and you
could just forward all calls to unknown IDs to it. You don't need a new
map for that, you could just use a binary search on funcs.
Thanks,
Jacek
More information about the wine-devel
mailing list