Ignore:
Timestamp:
2009-12-19T10:47:49+01:00 (16 years ago)
Author:
jttt
Message:

Fixed #4161 Major slowdown in recent versions, used correct pattern for listeners realized using CopyOnWriteArrayList

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    r2622 r2655  
    3333import org.openstreetmap.josm.data.osm.RelationMember;
    3434import org.openstreetmap.josm.data.osm.Way;
     35import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
    3536import org.openstreetmap.josm.data.osm.event.DataChangedEvent;
    3637import org.openstreetmap.josm.data.osm.event.DataSetListener;
     
    131132
    132133    public void wayNodesChanged(WayNodesChangedEvent event) {/* ignore */}
     134
     135    public void otherDatasetChange(AbstractDatasetChangedEvent event) {/* ignore */}
    133136    /* --------------------------------------------------------------------------- */
    134137
    135138    public void addMemberModelListener(IMemberModelListener listener) {
    136         synchronized (listeners) {
    137             if (listener != null && !listeners.contains(listener)) {
    138                 listeners.add(listener);
    139             }
     139        if (listener != null) {
     140            listeners.addIfAbsent(listener);
    140141        }
    141142    }
    142143
    143144    public void removeMemberModelListener(IMemberModelListener listener) {
    144         synchronized (listeners) {
    145             if (listener != null && listeners.contains(listener)) {
    146                 listeners.remove(listener);
    147             }
    148         }
     145        listeners.remove(listener);
    149146    }
    150147
    151148    protected void fireMakeMemberVisible(int index) {
    152         synchronized (listeners) {
    153             for (IMemberModelListener listener : listeners) {
    154                 listener.makeMemberVisible(index);
    155             }
     149        for (IMemberModelListener listener : listeners) {
     150            listener.makeMemberVisible(index);
    156151        }
    157152    }
Note: See TracChangeset for help on using the changeset viewer.