From 5f45e727c9abac21b0645b6d918e4d0c65691b5f Mon Sep 17 00:00:00 2001
From: "alecf%netscape.com" <alecf%netscape.com>
Date: Mon, 26 Apr 1999 21:38:38 +0000
Subject: [PATCH] switch to using new GetLocalPath call and nsCOMPtr

---
 mailnews/news/src/nsNewsUtils.cpp | 31 +++++++++----------------------
 1 file changed, 9 insertions(+), 22 deletions(-)

diff --git a/mailnews/news/src/nsNewsUtils.cpp b/mailnews/news/src/nsNewsUtils.cpp
index e04c4dfe2c840..6cc833a99317e 100644
--- a/mailnews/news/src/nsNewsUtils.cpp
+++ b/mailnews/news/src/nsNewsUtils.cpp
@@ -20,6 +20,7 @@
 #include "nsNewsUtils.h"
 #include "nsIServiceManager.h"
 #include "prsystem.h"
+#include "nsCOMPtr.h"
 
 // stuff for temporary root folder hack
 #include "nsIMsgMailSession.h"
@@ -38,31 +39,17 @@ nsGetNewsRoot(nsFileSpec &result)
   nsresult rv = NS_OK;
 
   if (gNewsRoot == nsnull) {
-    nsIMsgMailSession *session;
-    rv = nsServiceManager::GetService(kMsgMailSessionCID,
-                                      nsIMsgMailSession::GetIID(),
-                                      (nsISupports **)&session);
+    NS_WITH_SERVICE(nsIMsgMailSession, session, kMsgMailSessionCID, &rv);
     
     if (NS_SUCCEEDED(rv)) {
-      nsIMsgIncomingServer *server;
-      rv = session->GetCurrentServer(&server);
-      if (NS_FAILED(rv)) printf("nsGetNewsRoot: Couldn't get current server\n");
-      if (NS_SUCCEEDED(rv)) {
-        nsINntpIncomingServer *nntpServer;
-        rv = server->QueryInterface(nsINntpIncomingServer::GetIID(),
-                                    (void **)&nntpServer);
-        if (NS_FAILED(rv)) printf("nsGetNewsRoot: Couldn't get nntp server\n");
-        if (NS_SUCCEEDED(rv)) {
-          rv = nntpServer->GetRootFolderPath(&gNewsRoot);
-          if (NS_FAILED(rv)) printf("nsGetNewsRoot: Couldn't get root\n");
-          NS_RELEASE(nntpServer);
-        }
-        NS_RELEASE(server);
-        
-      }
-      nsServiceManager::ReleaseService(kMsgMailSessionCID, session);
+      nsCOMPtr<nsIMsgIncomingServer> server;
+      rv = session->GetCurrentServer(getter_AddRefs(server));
+      
+      if (NS_SUCCEEDED(rv))
+          rv = server->GetLocalPath(&gNewsRoot);
     }
   } /* if (gNewsRoot == nsnull) .. */
+  
   result = gNewsRoot;
   return rv;
 }
@@ -263,4 +250,4 @@ nsresult nsBuildNewsMessageURI(const nsFileSpec& path, PRUint32 key, char** uri)
 	return NS_OK;
 
 
-}
\ No newline at end of file
+}
-- 
GitLab