On 12/2/19 2:45 am, Alexey Ivanov wrote:
We can have two different functions though:
ReleaseActiveDCs(HWND);
ReleasePassiveDCs();> Then we can drop the list parameter.
What do you think?

Yes, it is worth to try.

BTW it would be good to know do we really need passiveDCList, which
is populated on "WM_AWT_RELEASEDC" and immediately cleaned.



On 12/1/19 7:04 am, Alexey Ivanov wrote:
Hello,

Please review the following fix for JDK:

JBS: https://bugs.openjdk.java.net/browse/JDK-8235147
Webrev: http://cr.openjdk.java.net/~aivanov/8235147/webrev.00/


When a DC becomes unused, it is moved from activeDCList to passiveDCList to be 
released later. It will stay in the passiveDCList until a new DC is requested 
for the same window or the window is destroyed.

The DCs in passiveDCList will never be used again, so we can release them as 
soon as another request for a DC comes in.

The test case, ManyFramesTest.java, attached to the bug creates and displays 10 
frames. Then it hides the 9 frames. At this point, passiveDCList contains 9 
entries. These DCs will not be released until the corresponding frame is shown 
and painted again or the frame is destroyed.


The fix releases all DCs currently in passiveDCList when another DC is 
requested.
With the fix, when running ManyFramesTest.java test case, the number of entries 
in passiveDCList does not grow, the list contains at most 1 entry.

Mach5 for client tests is green.



--
Best regards, Sergey.

Reply via email to