From f39dafb10a9c8b5d53c79f60ccf1bec77cc376a3 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 2 Jun 2003 14:11:45 +0000 Subject: [PATCH] Fix a subtle decref bug that caused a GC assertion to fail in a debug 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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c index 40c328c3349..c19f2e0b6fb 100644 --- a/Modules/ossaudiodev.c +++ b/Modules/ossaudiodev.c @@ -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); }