Review Request: RT-37788
Petr Pchelko
petr.pchelko at oracle.com
Thu Jul 3 04:22:15 UTC 2014
Hello, Danno.
I’ve noticed that you are leaking userDefaults and expandedOptions objects.
Adding autorelease to them would save you some memory.
With best regards. Petr.
> On Jul 3, 2014, at 1:43 AM, Danno Ferrin <danno.ferrin at oracle.com> wrote:
>
> Yes, this has to be fixed in native code. 8u40 it is then.
>
> I can make it cause a crash, but that starts with shooting myself in the foot, and not much can be done to fix it (by passing in bogus VM arguments).
>
>
> On Jul 2, 2014, at 3:40 PM, Stephen F Northover <steve.x.northover at oracle.com> wrote:
>
>> Personally, I wouldn't change any native code at this point unless it was fixing a crash. The review is for 8u40, correct?
>>
>> Steve
>>
>> On 2014-07-02, 5:38 PM, Chris Bensen wrote:
>>> I’m not sure about for 8u20. Seems fairly straight forward, and your Obj-C seems as good as any Obj-C. My only complaint at the moment is the following:
>>> 358 if ([pathParts count] > 2) {
>>> 359 // for 3 or more steps, the domain is first.second.third and the keys are "/first/second/third/", "fourth/", "fifth/"... etc
>>> 360 persistentDomain = [NSString stringWithFormat: @"%@.%@.%@", [pathParts objectAtIndex: 0],
>>> 361 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]];
>>> 362
>>> 363 [dictPath replaceObjectAtIndex: 0 withObject: [NSString stringWithFormat:@"/%@/%@/%@", [pathParts objectAtIndex: 0],
>>> 364 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]];
>>> 365 [dictPath removeObjectAtIndex: 2];
>>> 366 [dictPath removeObjectAtIndex: 1];
>>> 367 } else {
>>> 368 // for 1 or two steps, the domain is first.second.third and the keys are "/", "first/", "second/"
>>> 369 persistentDomain = @DEFAULT_JAVA_PREFS_DOMAIN;
>>> 370 [dictPath insertObject: @"" atIndex:0];
>>> 371 }
>>>
>>> what if [pathParts count] is 0? I’d probably do a switch:
>>>
>>> switch ([pathParts count]) {
>>> case 0:
>>> //error
>>> return/break;
>>> case 1:
>>> case 2:
>>> 368 // for 1 or two steps, the domain is first.second.third and the keys are "/", "first/", "second/"
>>> 369 persistentDomain = @DEFAULT_JAVA_PREFS_DOMAIN;
>>> 370 [dictPath insertObject: @"" atIndex:0];
>>> default:
>>> 359 // for 3 or more steps, the domain is first.second.third and the keys are "/first/second/third/", "fourth/", "fifth/"... etc
>>> 360 persistentDomain = [NSString stringWithFormat: @"%@.%@.%@", [pathParts objectAtIndex: 0],
>>> 361 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]];
>>> 362
>>> 363 [dictPath replaceObjectAtIndex: 0 withObject: [NSString stringWithFormat:@"/%@/%@/%@", [pathParts objectAtIndex: 0],
>>> 364 [pathParts objectAtIndex: 1], [pathParts objectAtIndex: 2]]];
>>> 365 [dictPath removeObjectAtIndex: 2];
>>> 366 [dictPath removeObjectAtIndex: 1];
>>>
>>> }
>>>
>>>
>>> Make sense? Clear as mud?
>>>
>>> Chris
>>>
>>>
>>> On Jul 2, 2014, at 2:15 PM, Danno Ferrin <danno.ferrin at oracle.com> wrote:
>>>
>>>> Chris, Kevin, Steve,
>>>>
>>>> Please review this fix for RT-37788. Since I am not an objective C any comments are welcome. Also, please consider if this is too much for an 8u20 fix (the diff is against the current 8u40 codebase).
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~shemnon/RT-37788/webrev.00/
>>>> JIRA: https://javafx-jira.kenai.com/browse/RT-37788
>>>>
>>>> —Danno
More information about the openjfx-dev
mailing list