-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor MxStreamList
based lists
#1260
Conversation
I started out working this from the BETA10 angle: whether the call to |
I think for this PR the big picture analysis/review is sufficient - I'd mostly like a confirmation that the changes make sense to you. For instance I'm not too sure about the nature of the base class ( |
I haven't looked too deeply into this, just some thoughts:
|
Yes, the class exists. This is confirmed by the BETA (see
Unfortunately the 1996 leaked alpha source code is relatively useless. Most of the code is missing (or hasn't been written yet at the time), and most of what is there has been rewritten or heavily modified since. It has been useful for naming a few things, and I think about a ~dozen functions were still more or less unchanged in retail, but that's about it. I'm going ahead with merging this - it's not necessarily the final solution to these lists, but they are in their correct locations now at least. |
I've been using
roadmap
and identifying pieces of code that we need to move around in order to eventually be able to have everything in its proper place. Among other things, I've noticed that theMxStreamList
based lists are all defined in different compilation units. Most importantly,MxStreamListMxDSAction
is defined withinMxDSObject
, which strongly indicates that this list does not containMxDSAction*
, butMxDSObject*
. I've refactored it accordingly.Before/after:
MxStreamList
->MxUtilityList
(this is the shared base class for all of the below; I've put it in its own header for now)MxStreamListMxDSAction
->MxDSObjectList
MxStreamListMxDSSubscriber
->MxDSSubscriberList
MxStreamListMxNextActionDataStart
->MxNextActionDataStartList
The changes should not reduce accuracy (based on my tests), but I'd appreciate a review @disinvite @jonschz
I think there's also a good chance that
MxDSObject*
was used in many functions in the streaming subsystem instead ofMxDSAction*
. However, I haven't found any hard evidence for that yet so I've left everything as-is for now, other than the places where I had to change it due to the new interfaces.