[PATCH] widl: Remove duptype function so type_t* can be directly compared

Richard Pospesel richard at torproject.org
Wed May 15 15:22:45 CDT 2019


I will make these suggested changes regarding white space, diff context,
and renames (an artifact of the dev process, but unnecessary), but be
warned, the bulk of this change needs to be in the same patch. This is a
major refactor which needs to touch a lot of code all at once, or else
we end up with invalid headers, typelibs, etc.

I can extract the actual fixes for duplicate type detection and a
missing inline specifier (which depend on this refactor), but they are
very few lines compared to the rest.

Anyway, I'm pospeselr on #winehackers if you wish to discuss in real-time.

best,
-Richard

On 5/14/19 11:56 PM, Dmitry Timoshkov wrote:
> Richard Pospesel <richard at torproject.org> wrote:
> 
>> Duplicated types made it impossible to avoid multiply defining user-
>> defined types (structs, enums, unions). The duptype function has been
>> removed and the remaining code refactored to no longer require it.
>> User-define types are now no longer duplicated in typetree.c
>> However, there is a bit of fallout from this:
>>
>> Various type attributes (ATTR_EXTERN, ATTR_CONST, and ATTR_INLINE)
>> had to be removed from a type_t's attributes and placed on a
>> new struct _decl_type which itself owned a type_t. This decl_type_t is
>> now passed around in many functions previously expecting type_t.
>>
>> The _type struct now includes a struct typedef_details in its details
>> union which has the type qualifier (const) info.
>>
>> The bitfield_details struct also contains a decl_type_t rather than a
>> raw type_t pointer to correctly handle const bits.
> 
> You should try to split the patch into smaller parts and avoid unnecessary
> renaming things and white space changes. At the existing state the patch
> is absolutely not manageable. Also it looks like that you have some strange
> 'git diff' setting that makes the patch alomost 40% larger because of huge
> diff contexts.
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190515/18f42a68/attachment.sig>


More information about the wine-devel mailing list