~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/btree_index.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-04-08 22:50:22 UTC
  • mfrom: (4274.1.3 1.15-btree-intern)
  • Revision ID: pqm@pqm.ubuntu.com-20090408225022-exxekai8bxhxrayk
(jam) During BTreeIndex parsing, intern() the appropriate key bits.

Show diffs side-by-side

added added

removed removed

Lines of Context:
590
590
class _LeafNode(object):
591
591
    """A leaf node for a serialised B+Tree index."""
592
592
 
 
593
    __slots__ = ('keys',)
 
594
 
593
595
    def __init__(self, bytes, key_length, ref_list_length):
594
596
        """Parse bytes to create a leaf node object."""
595
597
        # splitlines mangles the \r delimiters.. don't use it.
600
602
class _InternalNode(object):
601
603
    """An internal node for a serialised B+Tree index."""
602
604
 
 
605
    __slots__ = ('keys', 'offset')
 
606
 
603
607
    def __init__(self, bytes):
604
608
        """Parse bytes to create an internal node object."""
605
609
        # splitlines mangles the \r delimiters.. don't use it.
611
615
        for line in lines[2:]:
612
616
            if line == '':
613
617
                break
614
 
            nodes.append(tuple(line.split('\0')))
 
618
            nodes.append(tuple(map(intern, line.split('\0'))))
615
619
        return nodes
616
620
 
617
621