<AWT Dev> [8] Review request for CR 8020210 [macosx] JVM crashes in CWrapper$NSWindow.screen(long)
Petr Pchelko
petr.pchelko at oracle.com
Wed Jul 10 10:52:08 PDT 2013
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