From 2dc86c64113ee1be36dfc03ea74680b09f0773ad Mon Sep 17 00:00:00 2001 From: "ftang%netscape.com" Date: Tue, 15 May 2001 11:57:22 +0000 Subject: [PATCH] fix bug 71358. Use xpcom pointer and do right thing for ref count r/sr=hyatt git-svn-id: svn://10.0.0.236/trunk@94978 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/base/nsBidiPresUtils.cpp | 11 +++++------ mozilla/layout/base/nsBidiPresUtils.h | 8 ++++---- mozilla/layout/base/public/nsBidiPresUtils.h | 8 ++++---- mozilla/layout/base/src/nsBidiPresUtils.cpp | 11 +++++------ 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/mozilla/layout/base/nsBidiPresUtils.cpp b/mozilla/layout/base/nsBidiPresUtils.cpp index 0294fedcac4..3de225a0575 100644 --- a/mozilla/layout/base/nsBidiPresUtils.cpp +++ b/mozilla/layout/base/nsBidiPresUtils.cpp @@ -60,9 +60,8 @@ nsBidiPresUtils::nsBidiPresUtils() : mSuccess(NS_ERROR_FAILURE), mIndexMap(nsnull), mLevels(nsnull) { - nsCOMPtr bidiEngine = do_GetService("@mozilla.org/intl/bidi;1"); - if (bidiEngine) { - mBidiEngine = bidiEngine; + mBidiEngine = do_GetService("@mozilla.org/intl/bidi;1"); + if (mBidiEngine) { mSuccess = NS_OK; } } @@ -841,11 +840,10 @@ nsBidiPresUtils::FormatUnicodeText(nsIPresContext* aPresContext, { nsresult rv; if (!mUnicodeUtils) { - nsCOMPtr bidiUtils = do_GetService("@mozilla.org/intl/unicharbidiutil;1"); - if (!bidiUtils) { + mUnicodeUtils = do_GetService("@mozilla.org/intl/unicharbidiutil;1"); + if (!mUnicodeUtils) { return NS_ERROR_FAILURE; } - mUnicodeUtils = bidiUtils; } // ahmed //adjusted for correct numeral shaping @@ -1023,6 +1021,7 @@ nsresult nsBidiPresUtils::GetBidiEngine(nsIBidi** aBidiEngine) nsresult rv = NS_ERROR_FAILURE; if (mBidiEngine) { *aBidiEngine = mBidiEngine; + NS_ADDREF(*aBidiEngine); rv = NS_OK; } return rv; diff --git a/mozilla/layout/base/nsBidiPresUtils.h b/mozilla/layout/base/nsBidiPresUtils.h index dbe41da0c92..ccbeae912a2 100644 --- a/mozilla/layout/base/nsBidiPresUtils.h +++ b/mozilla/layout/base/nsBidiPresUtils.h @@ -29,8 +29,8 @@ #include "nsVoidArray.h" #include "nsIFrame.h" #include "nsIBidi.h" - -class nsIUBidiUtils; +#include "nsIUBidiUtils.h" +#include "nsCOMPtr.h" class nsBidiPresUtils { public: @@ -146,8 +146,8 @@ private: PRUint8* mLevels; nsresult mSuccess; - nsIBidi* mBidiEngine; - nsIUBidiUtils* mUnicodeUtils; + nsCOMPtr mBidiEngine; + nsCOMPtr mUnicodeUtils; }; #endif /* nsBidiPresUtils_h___ */ diff --git a/mozilla/layout/base/public/nsBidiPresUtils.h b/mozilla/layout/base/public/nsBidiPresUtils.h index dbe41da0c92..ccbeae912a2 100644 --- a/mozilla/layout/base/public/nsBidiPresUtils.h +++ b/mozilla/layout/base/public/nsBidiPresUtils.h @@ -29,8 +29,8 @@ #include "nsVoidArray.h" #include "nsIFrame.h" #include "nsIBidi.h" - -class nsIUBidiUtils; +#include "nsIUBidiUtils.h" +#include "nsCOMPtr.h" class nsBidiPresUtils { public: @@ -146,8 +146,8 @@ private: PRUint8* mLevels; nsresult mSuccess; - nsIBidi* mBidiEngine; - nsIUBidiUtils* mUnicodeUtils; + nsCOMPtr mBidiEngine; + nsCOMPtr mUnicodeUtils; }; #endif /* nsBidiPresUtils_h___ */ diff --git a/mozilla/layout/base/src/nsBidiPresUtils.cpp b/mozilla/layout/base/src/nsBidiPresUtils.cpp index 0294fedcac4..3de225a0575 100644 --- a/mozilla/layout/base/src/nsBidiPresUtils.cpp +++ b/mozilla/layout/base/src/nsBidiPresUtils.cpp @@ -60,9 +60,8 @@ nsBidiPresUtils::nsBidiPresUtils() : mSuccess(NS_ERROR_FAILURE), mIndexMap(nsnull), mLevels(nsnull) { - nsCOMPtr bidiEngine = do_GetService("@mozilla.org/intl/bidi;1"); - if (bidiEngine) { - mBidiEngine = bidiEngine; + mBidiEngine = do_GetService("@mozilla.org/intl/bidi;1"); + if (mBidiEngine) { mSuccess = NS_OK; } } @@ -841,11 +840,10 @@ nsBidiPresUtils::FormatUnicodeText(nsIPresContext* aPresContext, { nsresult rv; if (!mUnicodeUtils) { - nsCOMPtr bidiUtils = do_GetService("@mozilla.org/intl/unicharbidiutil;1"); - if (!bidiUtils) { + mUnicodeUtils = do_GetService("@mozilla.org/intl/unicharbidiutil;1"); + if (!mUnicodeUtils) { return NS_ERROR_FAILURE; } - mUnicodeUtils = bidiUtils; } // ahmed //adjusted for correct numeral shaping @@ -1023,6 +1021,7 @@ nsresult nsBidiPresUtils::GetBidiEngine(nsIBidi** aBidiEngine) nsresult rv = NS_ERROR_FAILURE; if (mBidiEngine) { *aBidiEngine = mBidiEngine; + NS_ADDREF(*aBidiEngine); rv = NS_OK; } return rv;