-
Notifications
You must be signed in to change notification settings - Fork 13
Performance & modernity changes #3
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
Open
randomblast
wants to merge
22
commits into
danieldickison:master
Choose a base branch
from
randomblast:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Manually construct OSCMessage.arguments array Still need to make this work with non-float arguments Implement OSCMessage endianness swapping for int32/int64 Add timestamp to OSCMessage
I wasn't padding the string to 4-byte alignments so all subsequent offsets were wrong.
There is a race condition when clearing the pending packets asynchronously, as this might be done from within a dealloc—the OSCConnection might be gone by the time the block is dispatched.
This was set manually to armv6 & armv7, which causes linking to fail on new devices which use armv7s.
This should allow connectToHost: to work with all protocols.
If we get a bundle larger than GCDAsyncUdpSocket's buffer, the socket will truncate it without warning. This can lead to us trying to read past the end of the buffer based on the bundle's metadata. This patch causes the rest of the bundle to be dropped and only the complete packets returned with the OSCMutableBundle.
The default is set fairly low (~9200b). It might be an idea to expose this configuration so that applications can specify the expected max size of their bundles. 64k is pushing it, and IP fragmentation will already be causing problems of its own.
It's not sufficient to decrement OSCConnection's reference and expect the socket to be deallocated immediately. There could be some retain cycles keeping it alive, and therefore preventing the socket from being unbinded. If the OSCConnection has received disconnect, we can basically guarantee that we want the socket closed.
A little bit of flexibility to drop packets before they're parsed.
Log and return instead. This is a stopgap measure since there's no way to check whether the assertion will fail before calling the method.
Running xcodebuild/xctool directly in the directory will output build intermediates directly in the repository.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Partially converted to ARC, for the bound UDP version. I'm not sure what the state is for the other classes - they might not even compile now.
The focus of these changes was on throughput & efficiency, but I also fixed some things which were causing pain in the application I was working on at the time. I actually don't remember the changes that well since I stopped using the library not too long after making them.