PyMem_Free((ANY *)szTraceback);
PyMem_Free((void *)szTraceback);
void PyXPCOM_LogError(const char *fmt, ...){	va_list marker;	va_start(marker, fmt);	VLogF("PyXPCOM Error: ", fmt, marker);	// If we have a Python exception, also log that:	PyObject *exc_typ = NULL, *exc_val = NULL, *exc_tb = NULL;	PyErr_Fetch( &exc_typ, &exc_val, &exc_tb);	if (exc_typ) {		PyErr_NormalizeException( &exc_typ, &exc_val, &exc_tb);		char *string1 = nsnull;		nsOutputStringStream streamout(string1);		if (exc_tb) {			const char *szTraceback = PyTraceback_AsString(exc_tb);			if (szTraceback == NULL)				streamout << "Can't get the traceback info!";			else {				streamout << "Traceback (most recent call last):\n";				streamout << szTraceback;				PyMem_Free((ANY *)szTraceback);			}		}		PyObject *temp = PyObject_Str(exc_typ);		if (temp) {			streamout << PyString_AsString(temp);			Py_DECREF(temp);		} else			streamout << "Can't convert exception to a string!";		streamout << ": ";		if (exc_val != NULL) {			temp = PyObject_Str(exc_val);			if (temp) {				streamout << PyString_AsString(temp);				Py_DECREF(temp);			} else				streamout << "Can't convert exception value to a string!";		}		streamout << "\n";		LogMessage("PyXPCOM Exception:", string1);	}	PyErr_Restore(exc_typ, exc_val, exc_tb);}