Andrew McNabb <amcn...@mcnabbs.org> added the comment: On Thu, Jul 30, 2009 at 07:14:56PM +0000, Thomas Heller wrote: > > Thanks for bringing my attention to this problem again, and for the review.
I'm just glad to help. > The problem is that the patch changes the behaviour of the > 'POINTER(...).from_param' methods, so I'm unsure if it can be applied > to 2.6 (or even 2.5). Opinions? Hmm. So you're saying that someone could be calling from_param() and expecting to see 0 instead of None. Am I understanding correctly? I suppose that could happen on either 32-bit or 64-bit systems (because from_param returns 0 for both). I can't personally think of a situation where someone would rely on that, but maybe it's something to ask about on python-dev. I just looked at ConvParam in a little more detail, and it seems that the problem is caused because setting pa->value.i to 0 only works for the lower-order bits. Apparently the higher order bits in pa->value are non-zero when ConvParam is called. Would it be possible to zero-out pa->value at the top of ConvParam (i.e., putting "bzero(&(pa->value), sizeof(pa->value)" or something at the top of ConvParam)? Am I missing something about what's in pa before ConvParam is called? > The patch is missing a 'Py_INCREF(value)' before the 'return value;', > but this is a minor point. Thanks for pointing that out. I'm still getting familiar with reference counting in the Python API. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4606> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com