Hi Oleg,

getReplacement should not be returning an invalid surface. If the current D3DSD is invalid, then it should return a valid replacement. The only time it should return null is when the window is gone. It sounds like the window isn't gone here, it has just switched over to a non-D3D type of SurfaceData and return that...

                        ...jim

On 8/23/2012 4:37 PM, Oleg Pekhovskiy wrote:
Hi Phil, Jim,

thank you for pointing out the testing work that should be performed.
I tested my fix with the following regression tests:
test/java/awt/Graphics
test/java/awt/Graphics2D
test/java/awt/GraphicsDevice
test/java/awt/GraphicsEnvironment
test/sun/java2d

Plus I tested performance differences on:
demo/jfc/Java2D/Java2Demo.jar

Testing was done on Windows 7 & Ubuntu 12.04 LTS.
No differences were found.

I also asked Yuri Nesterenko to test all that stuff on Mac.

Thanks,
Oleg


11.08.2012 3:10, Phil Race wrote:
Oleg,
This looks OK to me but since this is a shared code change I have
to ask what testing you've done ?

Also why not provide a regression test ? The provided test was
interactive but I think it can be automated.

You need another review and I'd like Jim to take a look.

-phil.

On 8/10/2012 2:26 PM, Oleg Pekhovskiy wrote:
Hi,

Please review the fix for CR:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7153339

Webrev:
http://cr.openjdk.java.net/~bagiras/8/7153339.1/

Comments:
XOR is not supported for D3D (see comments inside
D3DSurfaceData.validatePipe()) and
software rendering is used invalidating current D3DSurfaceData.
So we have situation when component's peer has invalid SurfaceData
and it's retrieved in
SunGraphics2D.revalidateAll() through SurfaceData.getReplacement()
without any check.
That's why I added validity check there.

Thanks,
Oleg

<http://cr.openjdk.java.net/%7Ebagiras/8/7153339.1/>



Reply via email to