[Python-de] Memroy Leaks

Gerhard Haering gh at ghaering.de
Die Jul 12 14:32:13 CEST 2005


On Tue, Jul 12, 2005 at 12:13:03PM +0200, Julian Rath wrote:
> Eine Frage:
> Verwende ich hier das Py_INCREF richtig?
> danke
> Julian
> 
> PyObject* get_error_str(HRESULT hr)
> {
>     if(FACILITY_WINDOWS == HRESULT_FACILITY(hr))
>         hr = HRESULT_CODE(hr);
>     char* pErrMsg;
> 	PyObject* error;
>     if(FormatMessage(
>       FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, 
>       NULL,
> 	  hr,
> 	  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
>       (LPSTR)&pErrMsg,
> 	  0,
> 	  NULL) != 0)
> 	{
>         error = PyString_FromFormat("[0x%x] %s", hr ,pErrMsg);
>         LocalFree(pErrMsg);
>     } 
> 	else
> 		error = PyString_FromFormat("[0x%x] unknown error code", hr);
> 	Py_INCREF(error);
> 	return error;
> }

Nein. Das Py_INCREF erzeugt eine Referenz zu viel. Lass es weg.

Warum hast du gemeint dass du es brauchst? Vielleicht können wir ein
Misverständnis ausräumen ...

-- Gerhard
-- 
Gerhard Häring - gh at ghaering.de - Python, web & database development
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : http://starship.python.net/pipermail/python-de/attachments/20050712/c47d2d75/attachment.pgp