<AWT Dev> [8] Review request for CR 8020210 [macosx] JVM crashes in CWrapper$NSWindow.screen(long)
Anthony Petrov
anthony.petrov at oracle.com
Wed Jul 10 10:54:41 PDT 2013
Thanks. Consider the rest of the fix approved by me then.
--
best regards,
Anthony
On 07/10/2013 09:52 PM, Petr Pchelko wrote:
> Oh. Sorry. I was looking to another fix and looks like I forgot to revert the changes. I won't push the changes from AWTView.m
>
> With best regards. Petr.
>
> On Jul 10, 2013, at 9:50 PM, Anthony Petrov <anthony.petrov at oracle.com> wrote:
>
>> Hi Petr,
>>
>> The fix looks fine now. Thank you.
>>
>> However, you've added a change in AWTView.m. Is it intentional? I'm not sure if this has any relation to the crash we're fixing.
>>
>> --
>> best regards,
>> Anthony
>>
>> On 07/10/2013 07:29 PM, Petr Pchelko wrote:
>>> Hello, Anthony.
>>>
>>> I've updated the fix again. Now we always use GC.
>>> The new version is available here: http://cr.openjdk.java.net/~pchelko/8020210/webrev.02/
>>>
>>> With best regards. Petr.
>>>
>>> On Jul 10, 2013, at 4:22 PM, Anthony Petrov wrote:
>>>
>>>> Thanks for the update. One more suggestion:
>>>>
>>>>> 481 Insets i = ((CGraphicsDevice)getGraphicsDevice()).getScreenInsets();
>>>>> 482 Rectangle toBounds = getPeer().getGraphicsConfiguration().getBounds();
>>>>
>>>> Perhaps we should get the GC first, and then use gc.getDevice() instead of replying on a possibly default GD when requesting the screen insets?
>>>>
>>>> The fix looks good otherwise.
>>>>
>>>> --
>>>> best regards,
>>>> Anthony
>>>>
>>>> On 07/10/2013 03:38 PM, Petr Pchelko wrote:
>>>>> Hello, Anthony.
>>>>>> Does getGraphicsDevice() always return a non-null value?
>>>>> Yes. If there's no device it returns the default one.
>>>>>
>>>>>> A specific GC is always associated with a window. Why do we use the default one then?
>>>>> You are right. That's a bug.
>>>>>
>>>>>> After removing CWrapper.NSWindow.screen(), do we still use any of the CWrapper.NSScreen methods?
>>>>> No, this is not used any more. Removed.
>>>>>
>>>>> Please see the updated version here:
>>>>> http://cr.openjdk.java.net/~pchelko/8020210/webrev.01/
>>>>>
>>>>> With best regards. Petr.
>>>>>
>>>>> On Jul 10, 2013, at 3:00 PM, Anthony Petrov wrote:
>>>>>
>>>>>> Hi Petr,
>>>>>>
>>>>>> A few questions:
>>>>>>
>>>>>> Does getGraphicsDevice() always return a non-null value?
>>>>>>
>>>>>> A specific GC is always associated with a window. Why do we use the default one then?
>>>>>>
>>>>>> After removing CWrapper.NSWindow.screen(), do we still use any of the CWrapper.NSScreen methods?
>>>>>>
>>>>>> --
>>>>>> best regards,
>>>>>> Anthony
>>>>>>
>>>>>> On 07/10/2013 02:31 PM, Petr Pchelko wrote:
>>>>>>> Hello, AWT Team.
>>>>>>>
>>>>>>> Please review the fix for the following issue:
>>>>>>> http://bugs.sun.com/view_bug.do?bug_id=8020210
>>>>>>> The fix is available at:
>>>>>>> http://cr.openjdk.java.net/~pchelko/8020210/webrev.00/
>>>>>>>
>>>>>>> In case the window is offscreen the [NSWindow screen] method could return null, so we crashed in CFRetain(screen). So the CWrapper.Window.screen method is quite dangerous. I've replaced it with getting screen bounds/insets using a GraphicsDevice.
>>>>>>>
>>>>>>> With best regards. Petr.
>>>>>>>
>>>>>
>>>
>
More information about the awt-dev
mailing list