PyObject *cm = MakeInterfaceParam(aCompMgr, &NS_GET_IID(nsIComponentManager));
PyObject *cm = MakeInterfaceParam(aCompMgr, &NS_GET_IID(nsIComponentManagerObsolete));
PyG_nsIModule::GetClassObject(nsIComponentManager *aCompMgr,                                const nsCID& aClass,                                const nsIID& aIID,                                void** r_classObj){	NS_PRECONDITION(r_classObj, "null pointer");	*r_classObj = nsnull;	CEnterLeavePython _celp;	PyObject *cm = MakeInterfaceParam(aCompMgr, &NS_GET_IID(nsIComponentManager));	PyObject *iid = Py_nsIID::PyObjectFromIID(aIID);	PyObject *clsid = Py_nsIID::PyObjectFromIID(aClass);	const char *methodName = "getClassObject";	PyObject *ret = NULL;	nsresult nr = InvokeNativeViaPolicy(methodName, &ret, "OOO", cm, clsid, iid);	Py_XDECREF(cm);	Py_XDECREF(iid);	Py_XDECREF(clsid);	if (NS_SUCCEEDED(nr)) {		nr = Py_nsISupports::InterfaceFromPyObject(ret, aIID, (nsISupports **)r_classObj, PR_FALSE);		if (PyErr_Occurred())			nr = HandleNativeGatewayError(methodName);	}	if (NS_FAILED(nr)) {		NS_ABORT_IF_FALSE(*r_classObj==NULL, "returning error result with an interface - probable leak!");	}	Py_XDECREF(ret);	return nr;}