nsresult rv = NS_OK;   if (m_reg != nsnull) {  NS_ADDREF(m_reg);   rv = m_reg->Open();  if (NS_SUCCEEDED(rv)) { nsIRegistry::Key key;  rv = m_reg->GetSubtree(nsIRegistry::Common, "Profiles", &key);  if (NS_SUCCEEDED(rv)) { nsIRegistry::Key newKey;   rv = m_reg->GetSubtree(key, profileName, &newKey); } else { #if defined(DEBUG_profile) printf("Registry : Couldn't get Profiles subtree.\n"); #endif } m_reg->Close(); } else { #if defined(DEBUG_profile) printf("Couldn't open registry.\n"); #endif } } else { #if defined(DEBUG_profile) printf("Registry Object is NULL.\n"); #endif  return NS_ERROR_FAILURE; }  return rv;
*exists = gProfileDataAccess->ProfileExists(profileName); return NS_OK;
NS_IMETHODIMP nsProfile::ProfileExists(const char *profileName){	nsresult rv = NS_OK;	// Check result.	if (m_reg != nsnull)	{		// Latch onto the registry object.		NS_ADDREF(m_reg);		// Open the registry.		rv = m_reg->Open();    		if (NS_SUCCEEDED(rv))		{			nsIRegistry::Key key;			rv = m_reg->GetSubtree(nsIRegistry::Common, "Profiles", &key);			if (NS_SUCCEEDED(rv))			{		        nsIRegistry::Key newKey;				// Get handle to <profileName> passed				rv = m_reg->GetSubtree(key, profileName, &newKey);						}			else			{				#if defined(DEBUG_profile)					printf("Registry : Couldn't get Profiles subtree.\n");				#endif			}			m_reg->Close();		}		else		{			#if defined(DEBUG_profile)				printf("Couldn't open registry.\n");			#endif		}	}	else	{		#if defined(DEBUG_profile)			printf("Registry Object is NULL.\n");		#endif		return NS_ERROR_FAILURE;	}	return rv;}