[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