Skip to content
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

Address compression related memory handling. #164

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

levigroker
Copy link

Specifically:

open now checks the stream status before potentially opening again (and leaking memory).

close now checks stream status before attempting to close (potentially closing an already closed stream). Also an autoreleasepool now wraps the NSData object creation. Since close may be called in tight loops, this correctly releases memory in a timely manner.

write:maxLength: now is wrapped in an autoreleasepool. Since this is called in tight loops, the creation of the outputBuffer was causing memory to grow as a compresion was underway. The autoreleasepool mitigates this situation.

Specifically:

`open` now checks the stream status before potentially opening again (and leaking memory).

`close` now checks stream status before attempting to close (potentially closing an already closed stream). Also an autoreleasepool now wraps the NSData object creation. Since `close` may be called in tight loops, this correctly releases memory in a timely manner.

`write:maxLength:` now is wrapped in an autoreleasepool. Since this is called in tight loops, the creation of the `outputBuffer` was causing memory to grow as a compresion was underway. The autoreleasepool mitigates this situation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant