list.winehq.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview
thread

Re:

Jacek Caban

10 Dec 2019 10 Dec '19
5:57 p.m.

Hi Gabriel, On 12/10/19 6:17 PM, Gabriel Ivăncescu wrote:

...

On 12/10/19 5:35 PM, Jacek Caban wrote:

...

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

Sure, that sounds like a good approach as well. I'll look into it tomorrow.

I have a question, though, about jscript (similar patch for jscript, not sent yet to mailing list). In jscript, variables and functions can be deleted, and so currently I have a map of memids for both vars and functions (just one map for both).

Should I also use a binary search there (needed for both variables and functions), or rather keep the single map for both, which I think is slightly simpler code?

Currently I identify whether an element in the map is a variable or a function by looking at where it points to: if it points within the bounds of the function array, then it's a function. So no extra fields needed, other than the map itself.

This is all for jscript of course (not vbscript or this patch, but related).

I'm not sure without looking at the code, but two binary searches seem fine. Thanks, Jacek

0 0
Reply
Sign in to reply online Use email software

Back to the thread

Back to the list

HyperKitty Powered by HyperKitty version 1.3.12.