Ticket #21446: 21360.patch

File 21360.patch, 1.7 KB (added by GerdP, 3 years ago)

minimal patch to reduce memory leak

  • src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java

     
    177177     * Use this as default item for "do not select anything".
    178178     */
    179179    public TaggingPreset() {
    180         MainApplication.getLayerManager().addActiveLayerChangeListener(this);
    181180        updateEnabledState();
    182181    }
    183182
  • src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java

     
    9090        for (TaggingPreset tp: taggingPresets) {
    9191            if (!(tp instanceof TaggingPresetSeparator)) {
    9292                MainApplication.getToolbar().register(tp);
     93                MainApplication.getLayerManager().addActiveLayerChangeListener(tp);
    9394            }
    9495        }
    9596        if (taggingPresets.isEmpty()) {
     
    137138     */
    138139    public static void destroy() {
    139140        ToolbarPreferences toolBar = MainApplication.getToolbar();
    140         taggingPresets.forEach(toolBar::unregister);
     141        for (TaggingPreset tp: taggingPresets) {
     142            toolBar.unregister(tp);
     143            if (!(tp instanceof TaggingPresetSeparator)) {
     144                MainApplication.getLayerManager().removeActiveLayerChangeListener(tp);
     145            }
     146        }
    141147        taggingPresets.clear();
    142148        PRESET_TAG_CACHE.clear();
    143149        PRESET_ROLE_CACHE.clear();