[PATCH v13 0/17] MR6766: dlls/wintypes: Implement Windows.Foundation.Collections.PropertySet.
The implementation is backed by a smaller `IWinePropertySetImpl` interface for core operations (insertion, lookup, removal, iteration), which currently uses an `rb_tree` to store `HSTRING`-`IInspectable *` value pairs. If needed, the `IWinePropertySetImpl` implementation can be later swapped out with a hash table for performance reasons, as `PropertySet` does not have an enumeration order guarantee, at least according to the MSDN docs. -- v13: wintypes: Implement IMapView methods get_Size, HasKey, Lookup, Split for PropertySet. wintypes: Invoke MapChanged event handlers from PropertSet on entry removal and Clear(). wintypes: Invoke MapChanged event handlers from PropertySet on insertion. wintypes: Implement get_Current() for the IIterator implementation obtained from PropertySet. wintypes: Implement IIterator methods MoveNext() and get_HasCurrent() for PropertySet. wintypes: Implement IMap methods HasKey, get_Count, Remove, GetView for PropertySet. This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/6766
Right, but I'm not sure how to organize this into two MRs. Would it be acceptable for the first MR to only contain the stubs for the `I{Observable}Map`, `IMapView`, `IIterable` and `IIterator` interfaces (i.e, the first 8 commits)?
Yes, that would work. It can have two or more MRs, as long as each MR is pretty self-contained and easy to review. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6766#note_86627
On Tue Nov 5 13:42:21 2024 +0000, Zhiyi Zhang wrote:
Right, but I'm not sure how to organize this into two MRs. Would it be acceptable for the first MR to only contain the stubs for the `I{Observable}Map`, `IMapView`, `IIterable` and `IIterator` interfaces (i.e, the first 8 commits)? Yes, that would work. It can have two or more MRs, as long as each MR is pretty self-contained and easy to review. For example, "wintypes: Add IObservableMap<HSTRING, IInspectable *> and IIterable<IKeyValuePair<HSTRING, IInspectable *>> stubs to PropertySet implementation." can be split into "Add IObservableMap<HSTRING, IInspectable *>" and "IIterable<IKeyValuePair<HSTRING, IInspectable *>>". When you are using `and` in the subject, it's an indication that it might be possible to split further.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6766#note_86630
participants (2)
-
Vibhav Pant (@vibhavp) -
Zhiyi Zhang (@zhiyi)