[Zodb-checkins] SVN: ZODB/trunk/src/BTrees/BTreeTemplate.c Added comment and formatting changes mainly to overcome damage done by

Jim Fulton jim at zope.com
Wed Aug 11 14:37:22 EDT 2010


Log message for revision 115639:
  Added comment and formatting changes mainly to overcome damage done by
  merges.
  

Changed:
  U   ZODB/trunk/src/BTrees/BTreeTemplate.c

-=-
Modified: ZODB/trunk/src/BTrees/BTreeTemplate.c
===================================================================
--- ZODB/trunk/src/BTrees/BTreeTemplate.c	2010-08-11 17:12:12 UTC (rev 115638)
+++ ZODB/trunk/src/BTrees/BTreeTemplate.c	2010-08-11 18:37:22 UTC (rev 115639)
@@ -372,14 +372,14 @@
     if (self->size) {
       d = BTree_Realloc(self->data, sizeof(BTreeItem) * self->size * 2);
       if (d == NULL)
-	      return -1;
+        return -1;
       self->data = d;
       self->size *= 2;
     }
     else {
       d = BTree_Malloc(sizeof(BTreeItem) * 2);
       if (d == NULL)
-	      return -1;
+        return -1;
       self->data = d;
       self->size = 2;
     }
@@ -564,7 +564,7 @@
 
     for (i = 1; i < len; i++) {
 #ifdef KEY_TYPE_IS_PYOBJECT
-	    DECREF_KEY(self->data[i].key);
+      DECREF_KEY(self->data[i].key);
 #endif
       Py_DECREF(self->data[i].child);
     }
@@ -625,13 +625,13 @@
   if (self_was_empty) {
     /* We're empty.  Make room. */
     if (value) {
-	    if (BTree_grow(self, 0, noval) < 0)
+      if (BTree_grow(self, 0, noval) < 0)
         goto Error;
     }
     else {
-	    /* Can't delete a key from an empty BTree. */
-	    PyErr_SetObject(PyExc_KeyError, keyarg);
-	    goto Error;
+      /* Can't delete a key from an empty BTree. */
+      PyErr_SetObject(PyExc_KeyError, keyarg);
+      goto Error;
     }
   }
 
@@ -699,7 +699,7 @@
           the smallest key of the node child.
 
           This doesn't apply to the 0th node, whos key is unused.
-        */
+       */
       int _cmp = 1;
       TEST_KEY_SET_OR(_cmp, key, d->key) goto Error;
       if (_cmp == 0)
@@ -724,7 +724,8 @@
         }
     }
 
-  if (status == 2) {  /*  this is the last reference to child status */
+  if (status == 2) {
+    /* The child must be a BTree because bucket.set never returns 2 */
     /* Two problems to solve:  May have to adjust our own firstbucket,
      * and the bucket that went away needs to get unlinked.
      */
@@ -765,8 +766,8 @@
    * But first, if we're a bottom-level node, we've got more bucket-fiddling
    * to set up.
    */
-  if (!SameType_Check(self, d->child)) {
-    /* We're about to delete a bucket. */
+  if (! SameType_Check(self, d->child)) {
+    /* We're about to delete a bucket, so need to adjust bucket pointers. */
     if (min) {
       /* It's not our first bucket, so we can tell the previous
        * bucket to adjust its reference to it.  It can't be anyone
@@ -874,26 +875,26 @@
     int size = PyDict_Size(keywords);
     force = PyDict_GetItemString(keywords, "force");
     if (force)
-	    size--;
+      size--;
     if (size) {
-	    PyErr_SetString(PyExc_TypeError,
+      PyErr_SetString(PyExc_TypeError,
                       "_p_deactivate only accepts keyword arg force");
-	    return NULL;
+      return NULL;
     }
   }
 
   if (self->jar && self->oid) {
     ghostify = self->state == cPersistent_UPTODATE_STATE;
     if (!ghostify && force) {
-	    if (PyObject_IsTrue(force))
+      if (PyObject_IsTrue(force))
         ghostify = 1;
-	    if (PyErr_Occurred())
+      if (PyErr_Occurred())
         return NULL;
     }
     if (ghostify) {
-	    if (_BTree_clear(self) < 0)
+      if (_BTree_clear(self) < 0)
         return NULL;
-	    PER_GHOSTIFY(self);
+      PER_GHOSTIFY(self);
     }
   }
 
@@ -964,7 +965,7 @@
   if (self->len) {
     r = PyTuple_New(self->len * 2 - 1);
     if (r == NULL)
-	    goto err;
+      goto err;
 
     if (self->len == 1
         && self->data->child->ob_type != self->ob_type
@@ -972,15 +973,15 @@
         && BUCKET(self->data->child)->oid == NULL
 #endif
         ) {
-	    /* We have just one bucket. Save its data directly. */
-	    o = bucket_getstate((Bucket *)self->data->child);
-	    if (o == NULL)
+      /* We have just one bucket. Save its data directly. */
+      o = bucket_getstate((Bucket *)self->data->child);
+      if (o == NULL)
         goto err;
-	    PyTuple_SET_ITEM(r, 0, o);
-	    ASSIGN(r, Py_BuildValue("(O)", r));
+      PyTuple_SET_ITEM(r, 0, o);
+      ASSIGN(r, Py_BuildValue("(O)", r));
     }
     else {
-	    for (i=0, l=0; i < self->len; i++) {
+      for (i=0, l=0; i < self->len; i++) {
         if (i) {
           COPY_KEY_TO_OBJECT(o, self->data[i].key);
           PyTuple_SET_ITEM(r, l, o);
@@ -991,7 +992,7 @@
         PyTuple_SET_ITEM(r,l,o);
         l++;
       }
-	    ASSIGN(r, Py_BuildValue("OO", r, self->firstbucket));
+      ASSIGN(r, Py_BuildValue("OO", r, self->firstbucket));
     }
 
   }
@@ -1055,31 +1056,31 @@
   for (i = 0, d = self->data, l = 0; i < len; i++, d++) {
     PyObject *v;
     if (i) { /* skip the first key slot */
-	    COPY_KEY_FROM_ARG(d->key, PyTuple_GET_ITEM(items, l), copied);
-	    l++;
-	    if (!copied)
+      COPY_KEY_FROM_ARG(d->key, PyTuple_GET_ITEM(items, l), copied);
+      l++;
+      if (!copied)
         return -1;
-	    INCREF_KEY(d->key);
+      INCREF_KEY(d->key);
     }
     v = PyTuple_GET_ITEM(items, l);
     if (PyTuple_Check(v)) {
-	    /* Handle the special case in __getstate__() for a BTree
-	       with a single bucket. */
-	    d->child = BTree_newBucket(self);
-	    if (!d->child)
+      /* Handle the special case in __getstate__() for a BTree
+         with a single bucket. */
+      d->child = BTree_newBucket(self);
+      if (!d->child)
         return -1;
-	    if (noval) {
+      if (noval) {
         if (_set_setstate(BUCKET(d->child), v) < 0)
           return -1;
-	    }
-	    else {
+      }
+      else {
         if (_bucket_setstate(BUCKET(d->child), v) < 0)
           return -1;
-	    }
+      }
     }
     else {
-	    d->child = (Sized *)v;
-	    Py_INCREF(v);
+      d->child = (Sized *)v;
+      Py_INCREF(v);
     }
     l++;
   }
@@ -1142,43 +1143,43 @@
 PyObject *
 get_bucket_state(PyObject *t)
 {
-	if (t == Py_None)
-		return Py_None;		/* an empty BTree */
-	if (! PyTuple_Check(t)) {
-		PyErr_SetString(PyExc_TypeError,
+  if (t == Py_None)
+    return Py_None;		/* an empty BTree */
+  if (! PyTuple_Check(t)) {
+    PyErr_SetString(PyExc_TypeError,
                     "_p_resolveConflict: expected tuple or None for state");
-		return NULL;
-	}
+    return NULL;
+  }
 
-	if (PyTuple_GET_SIZE(t) == 2) {
-		/* A non-degenerate BTree. */
-		return merge_error(-1, -1, -1, 11);
-	}
+  if (PyTuple_GET_SIZE(t) == 2) {
+    /* A non-degenerate BTree. */
+    return merge_error(-1, -1, -1, 11);
+  }
 
-	/* We're in the one-bucket case. */
+  /* We're in the one-bucket case. */
 
-	if (PyTuple_GET_SIZE(t) != 1) {
-		PyErr_SetString(PyExc_TypeError,
+  if (PyTuple_GET_SIZE(t) != 1) {
+    PyErr_SetString(PyExc_TypeError,
                     "_p_resolveConflict: expected 1- or 2-tuple for state");
-		return NULL;
-	}
+    return NULL;
+  }
 
-	t = PyTuple_GET_ITEM(t, 0);
-	if (! PyTuple_Check(t) || PyTuple_GET_SIZE(t) != 1) {
-		PyErr_SetString(PyExc_TypeError,
+  t = PyTuple_GET_ITEM(t, 0);
+  if (! PyTuple_Check(t) || PyTuple_GET_SIZE(t) != 1) {
+    PyErr_SetString(PyExc_TypeError,
                     "_p_resolveConflict: expected 1-tuple containing "
                     "bucket state");
-		return NULL;
-	}
+    return NULL;
+  }
 
-	t = PyTuple_GET_ITEM(t, 0);
-	if (! PyTuple_Check(t)) {
-		PyErr_SetString(PyExc_TypeError,
+  t = PyTuple_GET_ITEM(t, 0);
+  if (! PyTuple_Check(t)) {
+    PyErr_SetString(PyExc_TypeError,
                     "_p_resolveConflict: expected tuple for bucket state");
-		return NULL;
-	}
+    return NULL;
+  }
 
-	return t;
+  return t;
 }
 
 /* Tricky.  The only kind of BTree conflict we can actually potentially
@@ -1484,7 +1485,7 @@
                                       &max,
                                       &excludemin,
                                       &excludemax))
-	    return NULL;
+      return NULL;
   }
 
   UNLESS (PER_USE(self)) return NULL;
@@ -1509,8 +1510,8 @@
       PER_UNUSE(lowbucket);
       if (bucketlen > 1)
         lowoffset = 1;
-	    else if (self->len < 2)
-	    	goto empty;
+      else if (self->len < 2)
+        goto empty;
       else {	/* move to first item in next bucket */
         Bucket *next;
         UNLESS (PER_USE(lowbucket)) goto err;
@@ -1543,25 +1544,25 @@
     PER_UNUSE(highbucket);
     highoffset = bucketlen - 1;
     if (excludemax) {
-	    if (highoffset > 0)
-	    	--highoffset;
-	    else if (self->len < 2)
-	    	goto empty_and_decref_buckets;
-	    else {	/* move to last item of preceding bucket */
-	    	int status;
-	    	assert(highbucket != self->firstbucket);
-	    	Py_DECREF(highbucket);
-	    	status = PreviousBucket(&highbucket, self->firstbucket);
-	    	if (status < 0) {
+      if (highoffset > 0)
+        --highoffset;
+      else if (self->len < 2)
+        goto empty_and_decref_buckets;
+      else {	/* move to last item of preceding bucket */
+        int status;
+        assert(highbucket != self->firstbucket);
+        Py_DECREF(highbucket);
+        status = PreviousBucket(&highbucket, self->firstbucket);
+        if (status < 0) {
           Py_DECREF(lowbucket);
           goto err;
-	    	}
-	    	assert(status > 0);
-	    	Py_INCREF(highbucket);
+        }
+        assert(status > 0);
+        Py_INCREF(highbucket);
         UNLESS (PER_USE(highbucket)) goto err_and_decref_buckets;
         highoffset = highbucket->len - 1;
         PER_UNUSE(highbucket);
-	    }
+      }
     }
     assert(highoffset >= 0);
   }



More information about the Zodb-checkins mailing list