[Zope-Checkins] CVS: Products/DCOracle2/DCOracleStorage - Full.py:1.4

Matthew T. Kromer matt@zope.com
Fri, 8 Feb 2002 11:13:37 -0500


Update of /cvs-repository/Products/DCOracle2/DCOracleStorage
In directory cvs.zope.org:/tmp/cvs-serv1942

Modified Files:
	Full.py 
Log Message:
Add patch from Holger Cornelsen -- Holger dot Cornelsen AT T dash Online dot DE


=== Products/DCOracle2/DCOracleStorage/Full.py 1.3 => 1.4 ===
             rootl = ['\0\0\0\0\0\0\0\0']; pop = rootl.pop
             i=0
-            while rootl:
+            # Holger Cornelsen contributed a duplicate OID patch
+            pindx = {}                                      # HC
+            referenced = pindex.has_key                     # HC
+            while rootl:        
                 i=i+1
-                oid=unpack64(pop())
+                poid = pop()                                # HC
+                if referenced(poid):                        # HC
+                    continue                                # HC
+                pindex[poid] = 1                            # HC
+                oid=unpack64(poid)                          # HC
                 __traceback_info__=rootl, i, oid, tid
                 #packPickles(unpack64(oid), tid, c)
                 c2.execute(i_oid=oid)