From 5b8f3cd4635c51a074e49a90c463017549cb8a37 Mon Sep 17 00:00:00 2001
From: Tim Peters <tim.one@comcast.net>
Date: Thu, 11 Nov 2004 21:00:44 +0000
Subject: [PATCH] Merge rev 28441 from ZODB trunk.

type_and_adr():  Display the oid too.
---
 branches/3.3/NEWS.txt            | 6 ++++++
 branches/3.3/src/BTrees/check.py | 8 ++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/branches/3.3/NEWS.txt b/branches/3.3/NEWS.txt
index 0f6e044c..5c1ab16b 100644
--- a/branches/3.3/NEWS.txt
+++ b/branches/3.3/NEWS.txt
@@ -33,6 +33,12 @@ Install
 
 The C header file ``ring.h`` is now installed.
 
+Tools
+-----
+
+- ``BTrees.check.display()`` now displays the oids (if any) of the
+  BTree's or TreeSet's constituent objects.
+
 
 What's new in ZODB3 3.3?
 ========================
diff --git a/branches/3.3/src/BTrees/check.py b/branches/3.3/src/BTrees/check.py
index e3f7383e..40510b14 100644
--- a/branches/3.3/src/BTrees/check.py
+++ b/branches/3.3/src/BTrees/check.py
@@ -39,7 +39,7 @@ from BTrees.OIBTree import OIBTree, OIBucket, OISet, OITreeSet
 from BTrees.IOBTree import IOBTree, IOBucket, IOSet, IOTreeSet
 from BTrees.IIBTree import IIBTree, IIBucket, IISet, IITreeSet
 
-from ZODB.utils import positive_id
+from ZODB.utils import positive_id, oid_repr
 
 TYPE_UNKNOWN, TYPE_BTREE, TYPE_BUCKET = range(3)
 
@@ -200,7 +200,11 @@ def crack_bucket(b, is_mapping):
     return keys, values
 
 def type_and_adr(obj):
-    return "%s (0x%x)" % (type(obj).__name__, positive_id(obj))
+    if hasattr(obj, '_p_oid'):
+        oid = oid_repr(obj._p_oid)
+    else:
+        oid = 'None'
+    return "%s (0x%x oid=%s)" % (type(obj).__name__, positive_id(obj), oid)
 
 # Walker implements a depth-first search of a BTree (or TreeSet or Set or
 # Bucket).  Subclasses must implement the visit_btree() and visit_bucket()
-- 
2.30.9