[Zodb-checkins] CVS: Packages/BTrees - BTreeTemplate.c:1.74.8.1
BucketTemplate.c:1.54.4.2
Tim Peters
tim.one at comcast.net
Tue Jul 5 12:42:04 EDT 2005
Update of /cvs-repository/Packages/BTrees
In directory cvs.zope.org:/tmp/cvs-serv26910/BTrees
Modified Files:
Tag: Zope-2_7-branch
BTreeTemplate.c BucketTemplate.c
Log Message:
Collector 1831.
The BTree minKey() and maxKey() methods gave a misleading message if no
key satisfying the constraints existed in a non-empty tree.
=== Packages/BTrees/BTreeTemplate.c 1.74 => 1.74.8.1 ===
--- Packages/BTrees/BTreeTemplate.c:1.74 Fri Apr 11 12:09:58 2003
+++ Packages/BTrees/BTreeTemplate.c Tue Jul 5 12:41:33 2005
@@ -1263,6 +1263,7 @@
PyObject *key = 0;
Bucket *bucket = NULL;
int offset, rc;
+ int empty_tree = 1;
UNLESS (PyArg_ParseTuple(args, "|O", &key)) return NULL;
@@ -1277,6 +1278,7 @@
if ((rc = BTree_findRangeEnd(self, key, min, &bucket, &offset)) <= 0)
{
if (rc < 0) goto err;
+ empty_tree = 0;
goto empty;
}
PER_ALLOW_DEACTIVATION(self);
@@ -1318,8 +1320,9 @@
return key;
empty:
- PyErr_SetString(PyExc_ValueError, "empty tree");
-
+ PyErr_SetString(PyExc_ValueError,
+ empty_tree ? "empty tree" :
+ "no key satisfies the conditions");
err:
PER_ALLOW_DEACTIVATION(self);
PER_ACCESSED(self);
=== Packages/BTrees/BucketTemplate.c 1.54.4.1 => 1.54.4.2 ===
--- Packages/BTrees/BucketTemplate.c:1.54.4.1 Thu Apr 29 17:51:50 2004
+++ Packages/BTrees/BucketTemplate.c Tue Jul 5 12:41:33 2005
@@ -688,6 +688,7 @@
{
PyObject *key=0;
int rc, offset;
+ int empty_bucket = 1;
if (args && ! PyArg_ParseTuple(args, "|O", &key)) return NULL;
@@ -701,6 +702,7 @@
if ((rc = Bucket_findRangeEnd(self, key, min, &offset)) <= 0)
{
if (rc < 0) return NULL;
+ empty_bucket = 0;
goto empty;
}
}
@@ -714,7 +716,9 @@
return key;
empty:
- PyErr_SetString(PyExc_ValueError, "empty bucket");
+ PyErr_SetString(PyExc_ValueError,
+ empty_bucket ? "empty bucket" :
+ "no key satisfies the conditions");
PER_ALLOW_DEACTIVATION(self);
PER_ACCESSED(self);
return NULL;
More information about the Zodb-checkins
mailing list