Merged revisions 79317 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r79317 | antoine.pitrou | 2010-03-23 01:25:54 +0100 (mar., 23 mars 2010) | 5 lines

  Issue #8139: ossaudiodev didn't initialize its types properly, therefore
  some methods (such as oss_mixer_device.fileno()) were not available.
  Initial patch by Bertrand Janin.
........
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py
index dda6137..055ad6c 100644
--- a/Lib/test/test_ossaudiodev.py
+++ b/Lib/test/test_ossaudiodev.py
@@ -159,6 +159,15 @@
             dsp.close()
             self.assertTrue(dsp.closed)
 
+    def test_mixer_methods(self):
+        # Issue #8139: ossaudiodev didn't initialize its types properly,
+        # therefore some methods were unavailable.
+        mixer = ossaudiodev.openmixer()
+        try:
+            self.assertGreaterEqual(mixer.fileno(), 0)
+        finally:
+            mixer.close()
+
 
 def test_main():
     try:
diff --git a/Misc/ACKS b/Misc/ACKS
index 2ea5ab9..e88db2a 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -359,6 +359,7 @@
 David Jacobs
 Kevin Jacobs
 Kjetil Jacobsen
+Bertrand Janin
 Geert Jansen
 Jack Jansen
 Bill Janssen
diff --git a/Misc/NEWS b/Misc/NEWS
index f82919b..a39a7c8 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -17,6 +17,10 @@
 Library
 -------
 
+- Issue #8139: ossaudiodev didn't initialize its types properly, therefore
+  some methods (such as oss_mixer_device.fileno()) were not available.
+  Initial patch by Bertrand Janin.
+
 - Issue #7512: shutil.copystat() could raise an OSError when the filesystem
   didn't support chflags() (for example ZFS under FreeBSD).  The error is
   now silenced.
diff --git a/Modules/ossaudiodev.c b/Modules/ossaudiodev.c
index 7686902..6654d71 100644
--- a/Modules/ossaudiodev.c
+++ b/Modules/ossaudiodev.c
@@ -986,11 +986,17 @@
 	NULL
 };
 
-PyObject*
+PyMODINIT_FUNC
 PyInit_ossaudiodev(void)
 {
     PyObject *m;
 
+    if (PyType_Ready(&OSSAudioType) < 0)
+        return NULL;
+
+    if (PyType_Ready(&OSSMixerType) < 0)
+        return NULL;
+
     m = PyModule_Create(&ossaudiodevmodule);
     if (m == NULL)
 	return NULL;