-
Notifications
You must be signed in to change notification settings - Fork 173
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: Rewrite AMF and property behavior logic to use smart pointers, references, and string_views over raw pointers and std::string& #1452
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Way, way too many unrelated changes, this should be broken up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah. Sorry about the commit history. I pulled the TryParse branch over before it was added and forgot to squash it, so all those commits were added to this branch's history.
I actually stayed really focused. The commit history is just screwed. |
I am not basing my comment off of the commit history, I didn't read that. |
… string_views over raw pointers and std::string&
4dc1cfc
to
fca5623
Compare
Well, for what it's worth, I at least fixed the commit history now. |
There is a lot here to unpack so ill bullet the points so they are clear, and also to note that i only got half way for now just so there werent too many questions to answer at once
MergeStripsMessage.h. I stopped around this file for a reference where to begin again |
Hey Emo: Thanks for looking over this! I'll try and address your questions point by point.
|
I will also note that, to my understanding, the only issue blocking the CIs currently is some strangeness with the unit tests themselves. While in game, the actual behaviors seem to load fine (at least according to the debug console output), in the game tests their IDs do not. I spent several hours trying to figure out the cause of this and I wasn't able to. Part of what motivated me to post this as a draft was the hope that one of you might have some insight. |
assuming the CI issue was resolved in these last few commits, I'm going to pivot to splitting up this big PR into smaller ones, |
…ed from the other branch commit)
the only 2 things i have time to reply to right now are
Unless the ordering is causing an actual problem, it can be left alone to reduce changelist size. This is not an optimization we are going for and will have next to zero effect for our use case, though i appreciate the consideration and thought behind it. Feel free to leave it in this PR and the other one, but in the future, we would rather focus on higher order optimizations than micro ones like packing outside of binary stream data.
We would rather, as mentioned in discord, propose the changes before the PR is put up. If a PR is put up first, then the work has already been done and we would rather not throw away work if we dont need to. In this context manual memory management was a necessary cost for abstraction and with the previous implementaion already finished and working, this is just change for the sake of change. It's not that i'm against the changes themselves, but more the code for AMF was finished as far as functionality goes and changing it may introduce bugs from a new implementation. Removing manual memory management is a good thing to work on, but in a context like this I do not see it as necessary. |
…n, preferred member naming conventions, and const-ref getters (#1456) * Split out BehaviorMessage class changes from PR #1452 * remove <string_view> inclusion in ActionContext.h * add the arguments nullptr check back in * remove redundant std::string constructor calls * Update AddStripMessage.cpp - change push_back to emplace_back
Not sure what's causing the game tests to fail right now after several hours of debugging, so marking it as draft for now. If any of you have a bit of time to look it over, it would be greatly appreciated.