[Zope-Checkins] CVS: StandaloneZODB/ZODB - cPickleCache.c:1.67

Jeremy Hylton jeremy@zope.com
Mon, 10 Jun 2002 18:49:41 -0400


Update of /cvs-repository/StandaloneZODB/ZODB
In directory cvs.zope.org:/tmp/cvs-serv8086

Modified Files:
	cPickleCache.c 
Log Message:
Simplify cc_invalidate() because None is no longer a valid argument.


=== StandaloneZODB/ZODB/cPickleCache.c 1.66 => 1.67 ===
 {
   PyObject *inv, *key, *v;
-  int i;
+  int i = 0;
 
-  /* XXX The code supports invalidation of all objects, but it's
-     impossible for a Connection object to pass None.  The code could be
-     simplied.
+  /* Older versions of ZODB used None to mean "invalidate everything,"
+     but current Connection implementations don't ever pass None.
   */
+  assert(key != Py_None);
 
   if (PyArg_ParseTuple(args, "O!", &PyDict_Type, &inv)) {
-      for (i=0; PyDict_Next(inv, &i, &key, &v); ) 
-	  if (key == Py_None) {
-	      /* Eek some nitwit invalidated everything! */
-	      for (i=0; PyDict_Next(self->data, &i, &key, &v); )
-		  _invalidate(self, key);
-	      break;
-	  }
-	  else
-	      _invalidate(self, key);
+      while (PyDict_Next(inv, &i, &key, &v))
+	  _invalidate(self, key);
       PyDict_Clear(inv);
   }
   else {
@@ -450,9 +443,6 @@
 	  return NULL;
       if (PyString_Check(inv))
 	  _invalidate(self, inv);
-      else if (inv == Py_None)	/* All */
-	  for (i=0; PyDict_Next(self->data, &i, &key, &v); )
-	      _invalidate(self, key);
       else {
 	  int l;