Dear Python experts, I have a strange problem - or more precisely, I'm not even sure if it's a problem or not. I'm developing a Python extension module in C which creates a new type with methods, mapping support and stuff like that :) Everything's working fine, but if I inherit a new class from this type in Python, I start getting strange warning messages in valgrind. Just a simple example:
import mymodule class InheritedType(mymodule.MyType): def a_new_method(self): print "test" x=InheritedType() x.a_new_method() ("mymodule" is the C extension module I developed) The error message I see in valgrind is the following: ==6579== Conditional jump or move depends on uninitialized value(s) ==6579== at 0x807CFF9: PyObject_GenericGetAttr (object.c:1283) ==6579== by 0x80B2EA3: PyEval_EvalFrame (ceval.c:1957) [...] I'm using Python 2.4.3, and by taking a look at the source of object.c (line 1283), it looks like the tp_dict member of the type object of my subclass is not initialized. The code snippet from line 1281-1285 looks like this: dictptr = (PyObject **) ((char *)obj + dictoffset); dict = *dictptr; if (dict != NULL) { res = PyDict_GetItem(dict, name); if (res != NULL) { [...] Should I worry about Valgrind's warning or is it just a false alarm? It does not occur if I try to inherit my class from a built-in class (like string or module or whatever), only if I use my extension's class, so I suspect that I'm doing something wrong. Is there anything I should watch out for when I create inheritable classes in a C extension? Thanks a lot in advance. -- Tamas <[EMAIL PROTECTED]> -- http://mail.python.org/mailman/listinfo/python-list