# HG changeset patch # User kylev # Date 1248395258 0 # Node ID 18e5892a5aed74d6c04652f75af6500dae268429 # Parent 1e1e24fddc7418714acbd72f62edf42485208d2f Defer incrementing reference to the decoder stack until later so we don't have to dec-ref if an error happens. Merge of change 630 on 1.2br. diff -r 1e1e24fddc74 -r 18e5892a5aed src/connections.c --- a/src/connections.c Fri Jul 24 00:23:14 2009 +0000 +++ b/src/connections.c Fri Jul 24 00:27:38 2009 +0000 @@ -49,12 +49,6 @@ )) return -1; - if (!decoder_stack) - decoder_stack = PyList_New(0); - else - Py_INCREF(decoder_stack); - self->decoder_stack = decoder_stack; - #define _stringsuck(d,t,s) {t=PyMapping_GetItemString(s,#d);\ if(t){d=PyString_AsString(t);Py_DECREF(t);}\ PyErr_Clear();} @@ -112,6 +106,13 @@ _mysql_Exception(self); return -1; } + + if (!decoder_stack) + decoder_stack = PyList_New(0); + else + Py_INCREF(decoder_stack); + self->decoder_stack = decoder_stack; + /* PyType_GenericAlloc() automatically sets up GC allocation and tracking for GC objects, at least in 2.2.1, so it does not need to