~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/_simple_set_pyx.pxd

  • Committer: John Arbash Meinel
  • Date: 2009-10-08 15:51:34 UTC
  • mfrom: (4679.7.1 2.1-static-tuple-btree)
  • mto: This revision was merged to the branch mainline in revision 4749.
  • Revision ID: john@arbash-meinel.com-20091008155134-2in91irsp62rcgei
Merge in the 2.1-static-tuple-btree branch, and restore the string intern tweaks.

The tweaks basically involve not interning 'sha1:' chk strings, which we can
be reasonably confident are only accessed as tuples, and thus get interned
into the more efficient SimpleSet. Even further, we know that we won't be
combining them into larger tuples [like we do with (file_id, revision_id)].
This saves quite a bit of space in the string interned dict, since chk
keys actually make up the bulk of our keys.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    ctypedef struct PyObject:
28
28
        pass
29
29
 
 
30
 
30
31
cdef public api class SimpleSet [object SimpleSetObject, type SimpleSet_Type]:
31
32
    """A class similar to PySet, but with simpler implementation.
32
33
 
53
54
    cdef int _insert_clean(self, PyObject *key) except -1
54
55
    cdef Py_ssize_t _resize(self, Py_ssize_t min_unused) except -1
55
56
 
 
57
 
56
58
# TODO: might want to export the C api here, though it is all available from
57
59
#       the class object...
58
60
cdef api object SimpleSet_Add(object self, object key)
59
61
cdef api SimpleSet SimpleSet_New()
 
62
cdef api object SimpleSet_Add(object self, object key)
 
63
cdef api int SimpleSet_Contains(object self, object key) except -1
 
64
cdef api int SimpleSet_Discard(object self, object key) except -1
 
65
cdef api PyObject *SimpleSet_Get(SimpleSet self, object key) except? NULL
 
66
cdef api Py_ssize_t SimpleSet_Size(object self) except -1
 
67
cdef api int SimpleSet_Next(object self, Py_ssize_t *pos, PyObject **key)