RFR: 8233955: VM crashes if more than one file are added to ClipboardContent via drag and drop [v4]
Kevin Rushforth
kcr at openjdk.org
Wed May 24 13:15:14 UTC 2023
On Wed, 24 May 2023 12:46:45 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> Lukasz Kostyra has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Release resources to prevent leaks
>
> modules/javafx.graphics/src/main/native-glass/mac/GlassViewDelegate.m line 976:
>
>> 974: {
>> 975: // create an image with contents of URL
>> 976: NSString *fileURL = [[[NSString alloc] autorelease] initWithData:[pbItem dataForType:NSPasteboardTypeFileURL] encoding:NSUTF8StringEncoding];
>
> Minor: The generally accepted pattern is to call `autorelease` after the `init`, so as to not split `alloc` and `init`, so:
>
>
> NSString *fileURL = [[[NSString alloc] initWithData:[pbItem dataForType:NSPasteboardTypeFileURL]
> encoding:NSUTF8StringEncoding] autorelease];
A functional reason why calling `autorelease` should be called after the `init` is that some objects, like `NSString`, might return a different object from the init method. Apple's docs for `NSArray initWithData:encoding:` says:
Return Value: ... The returned object may be different from the original receiver.
So this is no longer a minor suggestion, but a required change.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1089#discussion_r1204109920
More information about the openjfx-dev
mailing list