Rev 2500: Switch to using an offset rather than doing a list splice in http://bzr.arbash-meinel.com/branches/bzr/0.17-dev/dirstate_pyrex

John Arbash Meinel john at arbash-meinel.com
Fri May 4 20:26:48 BST 2007


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

------------------------------------------------------------
revno: 2500
revision-id: john at arbash-meinel.com-20070504192637-1tzys0ugbgy21fw9
parent: john at arbash-meinel.com-20070504192326-5f9kzev4v57if01r
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: dirstate_pyrex
timestamp: Fri 2007-05-04 14:26:37 -0500
message:
  Switch to using an offset rather than doing a list splice
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 19:23:26 +0000
+++ b/bzrlib/compiled/dirstate_helpers.pyx	2007-05-04 19:26:37 +0000
@@ -182,7 +182,7 @@
     return cur
 
 
-cdef object _fields_to_entry_0_parents(object fields):
+cdef object _fields_to_entry_0_parents(object fields, int offset):
     cdef object path_name_file_id_key
     cdef char *size_str
     cdef unsigned long int size
@@ -190,27 +190,27 @@
     cdef object is_executable
     if not PyList_CheckExact(fields):
         raise TypeError('fields must be a list')
-    path_name_file_id_key = (_List_GetItem_Incref(fields, 0),
-                             _List_GetItem_Incref(fields, 1),
-                             _List_GetItem_Incref(fields, 2),
+    path_name_file_id_key = (_List_GetItem_Incref(fields, offset+0),
+                             _List_GetItem_Incref(fields, offset+1),
+                             _List_GetItem_Incref(fields, offset+2),
                             )
 
     size_str = PyString_AS_STRING_void(
-                PyList_GetItem_object_void(fields, 5))
+                PyList_GetItem_object_void(fields, offset+5))
     size = strtoul(size_str, NULL, 10)
     executable_str = PyString_AS_STRING_void(
-                        PyList_GetItem_object_void(fields, 6))
+                        PyList_GetItem_object_void(fields, offset+6))
     if executable_str[0] == c'y':
         is_executable = True
     else:
         is_executable = False
     return (path_name_file_id_key, [
         ( # Current tree
-            _List_GetItem_Incref(fields, 3),# minikind
-            _List_GetItem_Incref(fields, 4),# fingerprint
-            size,                           # size
-            is_executable,                  # executable
-            _List_GetItem_Incref(fields, 7),# packed_stat or revision_id
+            _List_GetItem_Incref(fields, offset+3),# minikind
+            _List_GetItem_Incref(fields, offset+4),# fingerprint
+            size,                                  # size
+            is_executable,                         # executable
+            _List_GetItem_Incref(fields, offset+7),# packed_stat or revision_id
         )])
 
 
@@ -231,7 +231,7 @@
     current_dirname_size = 0
 
     while pos < field_count:
-        entry = _fields_to_entry_0_parents(fields[pos:pos+entry_size])
+        entry = _fields_to_entry_0_parents(fields, pos)
         pos = pos + entry_size
         dirname = PyTuple_GetItem_void_void(
                     PyTuple_GetItem_void_void(<void*>entry, 0), 0)



More information about the bazaar-commits mailing list