[Zodb-checkins] CVS: StandaloneZODB/ZODB - cPickleCache.c:1.45

Jeremy Hylton jeremy@zope.com
Tue, 2 Apr 2002 01:03:42 -0500


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

Modified Files:
	cPickleCache.c 
Log Message:
Substantial reformatting of code for readability and style.

A few substantive changes:

Split internals of cc_ass_sub() into two smaller function
cc_add_item() and cc_del_item(), removing several levels of
indentation in the process.

Fix incorrect check for return value from PyDict_SetItem().


=== StandaloneZODB/ZODB/cPickleCache.c 1.44 => 1.45 === (756/856 lines abridged)
 
 /* define this for extra debugging checks, and lousy performance */
+/* Are any of these checks necessary in production code?  How do we
+   decide when to disable it?
+*/
 #define MUCH_RING_CHECKING 1
 
 /* Do we want 'engine noise'.... abstract debugging output useful for
@@ -121,16 +124,16 @@
 
 #ifdef MUCH_RING_CHECKING
     int safety_counter = self->cache_size*10;
-    if(safety_counter<10000) safety_counter = 10000;
+    if (safety_counter<10000) 
+	safety_counter = 10000;
 #endif
 
-    while(1)
-    {
-        if(check_ring(self,"mid-gc")) return -1;
+    while (1) {
+        if (check_ring(self, "mid-gc")) 
+	    return -1;
 
 #ifdef MUCH_RING_CHECKING
-        if(!safety_counter--)
-        {
+        if (!safety_counter--) {
             /* This loop has been running for a very long time.
                It is possible that someone loaded a very large number of objects,
                and now wants us to blow them all away. However it may
@@ -138,37 +141,35 @@
                long then you really have to doubt it will ever terminate.
                In the MUCH_RING_CHECKING build we prefer to raise an exception
                here */
-            PyErr_SetString(PyExc_RuntimeError,"scan_gc_items safety counter exceeded");
+            PyErr_SetString(PyExc_RuntimeError,
+			    "scan_gc_items safety counter exceeded");
             return -1;
         }
 
-        if(!present_in_ring(self,here))
-        {
-            /* Our current working position is no longer in the ring. Thats bad. */
-            PyErr_SetString(PyExc_RuntimeError,"working position fell out the ring, in scan_gc_items");
+        if (!present_in_ring(self, here)) {
+            /* Our current working position is no longer in the ring. 
+	       That's bad. */ 
+            PyErr_SetString(PyExc_RuntimeError,
+		    "working position fell out the ring, in scan_gc_items");

[-=- -=- -=- 756 lines omitted -=- -=- -=-]

 }
 
-static int check_ring(ccobject *self,const char *context)
+/* XXX This function returns false if everything is okay, which is
+   backwards given its name.  All the tests say:
+
+   if (check_ring(...))
+       return error
+*/
+
+static int 
+check_ring(ccobject *self, const char *context)
 {
 #ifdef MUCH_RING_CHECKING
-    int code=_check_ring(self,context);
-    if(code)
-    {
-        /*printf(stderr,"BROKEN RING (code %d) in %s, size %d\n",code,context,PyDict_Size(self->data));*/
-        PyErr_Format(PyExc_RuntimeError,"broken ring (code %d) in %s, size %d",code,context,PyDict_Size(self->data));
+    int code = _check_ring(self,context);
+    if (code) {
+        PyErr_Format(PyExc_RuntimeError,
+		     "broken ring (code %d) in %s, size %d",
+		     code, context, PyDict_Size(self->data));
         return code;
     }
 #endif
@@ -845,11 +886,11 @@
     CPersistentRing *here = self->ring_home.next;
     while(1)
     {
-        if(here==target)
+        if (here==target)
         {
             return 1;
         }
-        if(here==&self->ring_home)
+        if (here==&self->ring_home)
         {
             /* back to the home position, and we didnt find it */
             return 0;
@@ -897,7 +938,7 @@
   
   UNLESS(self = PyObject_NEW(ccobject, &Cctype)) return NULL;
   self->setklassstate=self->jar=NULL;
-  if((self->data=PyDict_New()))
+  if ((self->data=PyDict_New()))
     {
       self->jar=jar; 
       Py_INCREF(jar);