[Zope-Checkins] CVS: Packages/AccessControl - cAccessControl.c:1.20.2.18

Tim Peters tim.one at comcast.net
Tue Dec 14 11:33:10 EST 2004


Update of /cvs-repository/Packages/AccessControl
In directory cvs.zope.org:/tmp/cvs-serv18956/lib/python/AccessControl

Modified Files:
      Tag: Zope-2_7-branch
	cAccessControl.c 
Log Message:
PermissionRole_getattro():  In the case conversion to string fails,
this defers to ExtensionClassGetattro().  Hard to know whether that's
the best thing to do, but so long as it's doing that it must explicitly
clear the exception before letting ExtensionClassGetattro() have at it.


=== Packages/AccessControl/cAccessControl.c 1.20.2.17 => 1.20.2.18 ===
--- Packages/AccessControl/cAccessControl.c:1.20.2.17	Tue Dec 14 11:24:23 2004
+++ Packages/AccessControl/cAccessControl.c	Tue Dec 14 11:33:09 2004
@@ -1641,8 +1641,10 @@
 	/* we support both the old "_d" (from the Python implementation)
 	   and the new "__roles__"
 	*/
-    
-	if (name_s && name_s[0] == '_') {
+
+    	if (name_s == NULL)
+    		PyErr_Clear(); /* defer to ExtensionClassGetattro */
+	else if (name_s[0] == '_') {
 		if (! strcmp(name_s, "__name__")) 
 			result = self->__name__;
 		else if (! strcmp(name_s, "__roles__"))
@@ -1650,7 +1652,7 @@
 		else if (! strcmp(name_s, "_p"))
 			result = self->_p;
 		else if (! strcmp(name_s, "_d"))
-			result= self->__roles__;
+			result = self->__roles__;
 	}
 
 	if (result) {
@@ -1658,7 +1660,7 @@
 		return result;
 	}
 	else
-		return ExtensionClassGetattro((PyObject *)self,name);
+		return ExtensionClassGetattro((PyObject *)self, name);
 }
 
 



More information about the Zope-Checkins mailing list