[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