Ignore:
Timestamp:
13.03.2010 15:34:25 (2 years ago)
Author:
jttt
Message:

Memory optimizations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java

    r3116 r3129  
    5555    private static final int FLAG_TAGGED = 1 << 6; 
    5656    private static final int FLAG_DIRECTION_REVERSED = 1 << 7; 
     57    private static final int FLAG_HIGHLIGHTED = 1 << 8; 
     58    private static final int FLAG_INCOMPLETE = 1 << 9; 
    5759 
    5860    /** 
     
    119121    /* mappaint data */ 
    120122    public ElemStyle mappaintStyle = null; 
    121     public Integer mappaintDrawnCode = 0; 
     123    public int mappaintDrawnCode = 0; 
    122124 
    123125    /* This should not be called from outside. Fixing the UI to add relevant 
     
    168170    } 
    169171 
    170     private volatile byte flags = FLAG_VISIBLE;   // visible per default 
     172    private volatile short flags = FLAG_VISIBLE;   // visible per default 
    171173 
    172174    /** 
     
    175177     */ 
    176178    private User user = null; 
    177  
    178     /** 
    179      * If set to true, this object is incomplete, which means only the id 
    180      * and type is known (type is the objects instance class) 
    181      */ 
    182     private boolean incomplete = false; 
    183179 
    184180    /** 
     
    333329     */ 
    334330    public boolean isUsable() { 
    335         return !isDeleted() && !isIncomplete() && !isDisabled(); 
    336     } 
    337  
    338     public boolean isDrawable() 
    339     { 
    340         return !isDeleted() && !isIncomplete() && !isFiltered(); 
     331        return (flags & (FLAG_DELETED + FLAG_INCOMPLETE + FLAG_DISABLED)) == 0; 
     332    } 
     333 
     334    public boolean isDrawable() { 
     335        return (flags & (FLAG_DELETED + FLAG_INCOMPLETE + FLAG_FILTERED)) == 0; 
    341336    } 
    342337 
     
    470465        return timestamp == 0; 
    471466    } 
    472  
    473     /** 
    474      * If set to true, this object is highlighted. Currently this is only used to 
    475      * show which ways/nodes will connect 
    476      */ 
    477     private volatile boolean highlighted = false; 
    478467 
    479468    private int timestamp; 
     
    12701259    } 
    12711260 
     1261    /** 
     1262     * If set to true, this object is incomplete, which means only the id 
     1263     * and type is known (type is the objects instance class) 
     1264     */ 
    12721265    private void setIncomplete(boolean incomplete) { 
    1273         if (dataSet != null && incomplete != this.incomplete) { 
     1266        if (dataSet != null && incomplete != this.isIncomplete()) { 
    12741267            if (incomplete) { 
    12751268                dataSet.firePrimitivesRemoved(Collections.singletonList(this), true); 
     
    12781271            } 
    12791272        } 
    1280         this.incomplete = incomplete; 
     1273        if (incomplete) { 
     1274            flags |= FLAG_INCOMPLETE; 
     1275        } else { 
     1276            flags &= ~FLAG_INCOMPLETE; 
     1277        } 
    12811278    } 
    12821279 
    12831280    public boolean isIncomplete() { 
    1284         return incomplete; 
     1281        return (flags & FLAG_INCOMPLETE) != 0; 
    12851282    } 
    12861283 
     
    12901287 
    12911288    public void setHighlighted(boolean highlighted) { 
    1292         if (this.highlighted != highlighted) { 
    1293             this.highlighted = highlighted; 
     1289        if (isHighlighted() != highlighted) { 
     1290            if (highlighted) { 
     1291                flags |= FLAG_HIGHLIGHTED; 
     1292            } else { 
     1293                flags &= ~FLAG_HIGHLIGHTED; 
     1294            } 
    12941295            if (dataSet != null) { 
    12951296                dataSet.fireHighlightingChanged(this); 
     
    12991300 
    13001301    public boolean isHighlighted() { 
    1301         return highlighted; 
     1302        return (flags & FLAG_HIGHLIGHTED) != 0; 
    13021303    } 
    13031304} 
Note: See TracChangeset for help on using the changeset viewer.