]> granicus.if.org Git - python/commitdiff
Fix a subtle decref bug that caused a GC assertion to fail in a debug
authorGuido van Rossum <guido@python.org>
Mon, 2 Jun 2003 14:11:45 +0000 (14:11 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 2 Jun 2003 14:11:45 +0000 (14:11 +0000)
build (assert(gc->gc.gc_refs != 0) in visit_decref()).

Because OSSAudioError is a global, we must compensate (twice!) for
PyModule_AddObject()'s "helpful" decref of the object it adds.

Modules/ossaudiodev.c

index 40c328c33496edd4d310faa22854f23243e5c2fa..c19f2e0b6fbb959b243fb85902c31a425dc90c7e 100644 (file)
@@ -938,6 +938,9 @@ initossaudiodev(void)
 
     OSSAudioError = PyErr_NewException("ossaudiodev.OSSAudioError", NULL, NULL);
     if (OSSAudioError) {
+       /* Each call to PyModule_AddObject decrefs it; compensate: */
+       Py_INCREF(OSSAudioError);
+       Py_INCREF(OSSAudioError);
         PyModule_AddObject(m, "error", OSSAudioError);
         PyModule_AddObject(m, "OSSAudioError", OSSAudioError);
     }