Skip to content

TreeParser does not seem to correctly initialise m_storedNodes #1074

Open
@tgvaughan

Description

@tgvaughan

To reproduce, create a TreeParser instance with a labeled newick string and set IsLabelledTree="true". Following the part of initAndValidate() responsible for sorting the labels alphabetically, the leaf nodes in m_nodes[] will have different IDs for a given node number compared with those in m_storedNodes[].

The side effect of this is that one cannot rely on node.getID() to return the taxon name for a given node, as this mapping - while initially okay - is broken once a state.restore() is performed.

While it's easy to fix the alphabetical sorting to update both m_nodes and m_storedNodes instead of only m_nodes, I'm not sure it's really necessary: It's possible/likely that my occasional use of node.getID() to obtain taxon labels is non-idiomatic/deprecated in favour of tree.getTaxonName(node). But maybe we should fix this anyway just to avoid difficult-to-diagnose problems when programmers occasionally do the wrong thing? :)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions