Rev 2486: Clean up bisect_dirstate to not use temporary variables. in http://bzr.arbash-meinel.com/branches/bzr/0.17-dev/dirstate_pyrex

John Arbash Meinel john at arbash-meinel.com
Fri May 4 16:43:58 BST 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.17-dev/dirstate_pyrex

------------------------------------------------------------
revno: 2486
revision-id: john at arbash-meinel.com-20070504154346-fgz2nrtwtd8u9w6a
parent: john at arbash-meinel.com-20070504044714-xgbrxg27p83yis89
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: dirstate_pyrex
timestamp: Fri 2007-05-04 10:43:46 -0500
message:
  Clean up bisect_dirstate to not use temporary variables.
modified:
  bzrlib/compiled/dirstate_helpers.pyx dirstate_helpers.pyx-20070503201057-u425eni465q4idwn-3
-------------- next part --------------
=== modified file 'bzrlib/compiled/dirstate_helpers.pyx'
--- a/bzrlib/compiled/dirstate_helpers.pyx	2007-05-04 04:47:14 +0000
+++ b/bzrlib/compiled/dirstate_helpers.pyx	2007-05-04 15:43:46 +0000
@@ -26,8 +26,9 @@
     # GetItem returns a borrowed reference
     void *PyDict_GetItem(object p, object key)
     int PyDict_SetItem(object p, object key, object val) except -1
-    void *PyList_GetItem_void "PyList_GET_ITEM" (object lst, int index)
-    object PyTuple_GetItem_object "PyTuple_GET_ITEM" (void* tpl, int index)
+    void *PyList_GetItem_object_void "PyList_GET_ITEM" (object lst, int index)
+    void *PyTuple_GetItem_void_void "PyTuple_GET_ITEM" (void* tpl, int index)
+    object PyUnicode_Split_void_object "PyUnicode_Split" (void* str, )
     int PyList_CheckExact(object)
     int PyTuple_CheckExact(object)
 
@@ -72,8 +73,7 @@
     cdef int _mid
     cdef object dirname_split
     cdef object cur_split
-    cdef void *block
-    cdef object cur
+    cdef void *cur
 
     if hi is None:
         _hi = len(dirblocks)
@@ -87,14 +87,10 @@
     while _lo < _hi:
         _mid = (_lo+_hi)/2
         # Grab the dirname for the current dirblock
-        # block = dirblocks[_mid]
-        block = PyList_GetItem_void(dirblocks, _mid)
-        if not PyTuple_CheckExact(<object>block):
-            raise TypeError('We expect to have a list of tuples')
-        # cur = block[0]
-        cur = PyTuple_GetItem_object(block, 0)
-        Py_INCREF(cur)
-        cur_split = cur.split('/')
+        # cur = dirblocks[_mid][0]
+        cur = PyTuple_GetItem_void_void(
+                PyList_GetItem_object_void(dirblocks, _mid), 0)
+        cur_split = (<object>cur).split('/')
         if cur_split < dirname_split: _lo = _mid+1
         else: _hi = _mid
     return _lo



More information about the bazaar-commits mailing list