[PATCH resend 03/13] msscript.ocx: Add initial IScriptModule stub implementation.

Jacek Caban jacek at codeweavers.com
Fri May 29 11:52:05 CDT 2020


Hi Gabriel,

On 26.05.2020 14:41, Gabriel Ivăncescu wrote:
> Signed-off-by: Gabriel Ivăncescu<gabrielopcode at gmail.com>
> ---
>
> We have to treat a ref count of 0 in a special manner when they are linked
> to the script control, because the modules must exist even when they have
> no external refs (as the script control can still use them).
>
> However, as evidenced by the tests, they must*not*  keep a ref to the script
> control in this case, as it would create a circular ref and make no sense,
> anyway.
>
> The alternative solution to allocate separate data for modules would
> require copying the data to multiple places (one for Module Collection,
> and one for orphaned Modules) which is more complicated, in my opinion.


There must be a cleaner way. If you need too much special treatment for 
orphaned modules, it means that the design needs to be improved. One 
thing that is often useful for similar cases are weak reference: never 
reference control from module and make sure that control always 
invalidates the module->control pointer when it actually releases the 
object.


Thanks,

Jacek




More information about the wine-devel mailing list