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

Keyboard Shortcuts

Thread View

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

2025

  • May
  • April
  • March
  • February
  • January

2024

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2023

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2022

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2021

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2020

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2019

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2018

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2017

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2016

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2015

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2014

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2013

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2012

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2011

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2010

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2009

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2008

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2007

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2006

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2005

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2004

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2003

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2002

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January

2001

  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
List 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

Back to the thread

Back to the list

Powered by HyperKitty version 1.3.7.