mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-13 07:17:13 -06:00
MultiResolutionImageSupport: fixed memory leak in create(int,Dimension[],Function<Dimension,Image>) (issue #726)
This commit is contained in:
@@ -5,6 +5,13 @@ FlatLaf Change Log
|
|||||||
|
|
||||||
#### Fixed bugs
|
#### Fixed bugs
|
||||||
|
|
||||||
|
- Fixed memory leak in
|
||||||
|
`MultiResolutionImageSupport.create(int,Dimension[],Function<Dimension,Image>)`,
|
||||||
|
which caches images created by the producer function. Used by
|
||||||
|
`FlatSVGIcon.getImage()` and `FlatSVGUtils.createWindowIconImages()`. If you
|
||||||
|
use one of these methods, it is **strongly recommended** to upgrade to this
|
||||||
|
version, because if the returned image is larger and painted very often it may
|
||||||
|
result in an out-of-memory situation. (issue #726)
|
||||||
- FileChooser: Fixed occasional NPE in `FlatShortcutsPanel` on Windows. (issue
|
- FileChooser: Fixed occasional NPE in `FlatShortcutsPanel` on Windows. (issue
|
||||||
#718)
|
#718)
|
||||||
- TextField: Fixed placeholder text painting, which did not respect horizontal
|
- TextField: Fixed placeholder text painting, which did not respect horizontal
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import java.awt.image.BaseMultiResolutionImage;
|
|||||||
import java.awt.image.MultiResolutionImage;
|
import java.awt.image.MultiResolutionImage;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.IdentityHashMap;
|
import java.util.IdentityHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@@ -134,7 +135,7 @@ public class MultiResolutionImageSupport
|
|||||||
{
|
{
|
||||||
private final Dimension[] dimensions;
|
private final Dimension[] dimensions;
|
||||||
private final Function<Dimension, Image> producer;
|
private final Function<Dimension, Image> producer;
|
||||||
private final IdentityHashMap<Dimension, Image> cache = new IdentityHashMap<>();
|
private final HashMap<Dimension, Image> cache = new HashMap<>();
|
||||||
|
|
||||||
ProducerMultiResolutionImage( Dimension[] dimensions, Function<Dimension, Image> producer ) {
|
ProducerMultiResolutionImage( Dimension[] dimensions, Function<Dimension, Image> producer ) {
|
||||||
this.dimensions = dimensions;
|
this.dimensions = dimensions;
|
||||||
|
|||||||
Reference in New Issue
Block a user