[Zodb-checkins] CVS: Zope/lib/Components/ExtensionClass/src - ExtensionClass.c:1.56.8.1

Chris McDonough chrism@zope.com
Mon, 26 Aug 2002 02:23:07 -0400


Update of /cvs-repository/Zope/lib/Components/ExtensionClass/src
In directory cvs.zope.org:/tmp/cvs-serv29520/lib/Components/ExtensionClass/src

Modified Files:
      Tag: chrism-install-branch
	ExtensionClass.c 
Log Message:
More work on my Zope2 installer branch.  The branch is fully functional
at this point, at least on Linux (try it!).  The goal is to allow
a './configure; make; make install' Zope source installation possible. 

- The 'configure' step now checks for large file support
  and will only allow configuration to continue if you
  say "yes, I want to screw myself later." ;-)

- Replaced 'zctl' with Tres' 'zopectl'.  In the process,
  refactored zopectl so that it uses a Squid-like config file.
  The config file consists of "directives", each of
  which has a particular set of possible values explained
  in the config file.  The config file provides a uniform
  front-end to the mish-mash of environment variables
  and command-line switches that you normally need to
  deal with when you configure a Zope instance.

- Created a new package in software_home named Controller
  which holds the zctl libraries and some useful scripts
  to create directives.

- Merged HEAD changes onto branch.



=== Zope/lib/Components/ExtensionClass/src/ExtensionClass.c 1.56 => 1.56.8.1 ===
--- Zope/lib/Components/ExtensionClass/src/ExtensionClass.c:1.56	Tue Jun 18 19:19:02 2002
+++ Zope/lib/Components/ExtensionClass/src/ExtensionClass.c	Mon Aug 26 02:22:36 2002
@@ -826,7 +826,15 @@
     char *func_name, buf[8192];
     int n;
 
-    func_name = PyString_AS_STRING(((PyFunctionObject*)self->meth)->func_name);
+    if (PyFunction_Check(self->meth)) {
+	func_name = PyString_AS_STRING(
+		((PyFunctionObject*)self->meth)->func_name);
+    }
+    else {
+	/* self->meth is some other kind of object */
+	func_name = "(?)";
+    }
+    
     if (self->self) {
 	PyObject *repr = PyObject_Repr(self->self);
 	if (!repr)