Skip to content

Bugfix, autoreleased error reference#1

Merged
herrapa merged 3 commits into
masterfrom
bugfix/autoreleased-error-reference
Nov 28, 2018
Merged

Bugfix, autoreleased error reference#1
herrapa merged 3 commits into
masterfrom
bugfix/autoreleased-error-reference

Conversation

@jonkan
Copy link
Copy Markdown

@jonkan jonkan commented Nov 28, 2018

Solves the crash when setting the successPtr/errorPtr in a MTLValueTransformer, e.g.

    @objc class func someJSONTransformer() -> ValueTransformer & MTLTransformerErrorHandling {
        return MTLValueTransformer(usingForwardBlock: { (value, successPtr, errorPtr) -> Any? in
            errorPtr?.pointee = NSError(domain: "some", code: 0, userInfo: nil)
            successPtr?.pointee = false
            return nil
        }, reverse: { (value, successPtr, errorPtr) -> Any? in
            errorPtr?.pointee = NSError(domain: "some", code: 0, userInfo: nil)
            successPtr?.pointee = false
            return nil
        })
    }

…eTransformer, caused by capturing the autoreleased error reference in the blocks and the error reference being deallocated prematurely. Passing a local tmpError that is then assigned to the error reference avoids this.
@jonkan jonkan requested a review from herrapa November 28, 2018 09:44
@herrapa herrapa merged commit c438743 into master Nov 28, 2018
@herrapa herrapa deleted the bugfix/autoreleased-error-reference branch November 28, 2018 10:05
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.

2 participants