From 4ae5f138da539d071f75764094bec8c8ce73b0fa Mon Sep 17 00:00:00 2001 From: Hirokazu Yamamoto Date: Sun, 7 Nov 2010 14:29:26 +0000 Subject: Issue #6317: Now winsound.PlaySound only accepts unicode with MvL's approval. --- Misc/NEWS | 2 ++ PC/winsound.c | 28 +--------------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index e541d61..5569bcd 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -251,6 +251,8 @@ Library Extension Modules ----------------- +- Issue #6317: Now winsound.PlaySound only accepts unicode. + - Issue #6317: Now winsound.PlaySound can accept non ascii filename. - Issue #9377: Use Unicode API for gethostname on Windows. diff --git a/PC/winsound.c b/PC/winsound.c index d455848..1ed95ba 100644 --- a/PC/winsound.c +++ b/PC/winsound.c @@ -73,8 +73,6 @@ static PyObject * sound_playsound(PyObject *s, PyObject *args) { Py_UNICODE *wsound; - PyObject *osound; - const char *sound; int flags; int ok; @@ -95,31 +93,7 @@ sound_playsound(PyObject *s, PyObject *args) Py_INCREF(Py_None); return Py_None; } - /* Drop the argument parsing error as narrow strings - are also valid. */ - PyErr_Clear(); - if (!PyArg_ParseTuple(args, "O&i:PlaySound", - PyUnicode_FSConverter, &osound, &flags)) - return NULL; - if (flags & SND_ASYNC && flags & SND_MEMORY) { - /* Sidestep reference counting headache; unfortunately this also - prevent SND_LOOP from memory. */ - PyErr_SetString(PyExc_RuntimeError, "Cannot play asynchronously from memory"); - Py_DECREF(osound); - return NULL; - } - sound = PyBytes_AsString(osound); - Py_BEGIN_ALLOW_THREADS - ok = PlaySoundA(sound, NULL, flags); - Py_END_ALLOW_THREADS - if (!ok) { - PyErr_SetString(PyExc_RuntimeError, "Failed to play sound"); - Py_DECREF(osound); - return NULL; - } - Py_DECREF(osound); - Py_INCREF(Py_None); - return Py_None; + return NULL; } static PyObject * -- cgit v0.12