Changeset 1624 in josm


Ignore:
Timestamp:
2009-05-28T17:49:08+02:00 (15 years ago)
Author:
stoecker
Message:

fix #2654 - patch by Daeron - Infinite loop in relation editor

File:
1 edited

Legend:

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

    r1618 r1624  
    341341            RelationMember way1 = null;
    342342            RelationMember way2 = null;
    343             while (m != null) {
     343            int depth = 0;
     344
     345            while (m != null && depth < 10) {
    344346                if (m.member instanceof Way) {
    345347                    way1 = m;
    346348                    break;
    347349                } else if (m.member instanceof Relation) {
     350                    if (m.member == this.relation)
     351                        break;
    348352                    m = ((Relation)m.member).lastMember();
     353                    depth++;
    349354                } else {
    350355                    break;
     
    355360                while (next < clone.members.size()) {
    356361                    m = clone.members.get(next++);
    357                     while (m != null) {
     362                    depth = 0;
     363                    while (m != null && depth < 10) {
    358364                        if (m.member instanceof Way) {
    359365                            way2 = m;
    360366                            break;
    361367                        } else if (m.member instanceof Relation) {
     368                            if (m.member == this.relation)
     369                                break;
    362370                            m = ((Relation)(m.member)).firstMember();
     371                            depth++;
    363372                        } else {
    364373                            break;
Note: See TracChangeset for help on using the changeset viewer.