From aed0c41533b04c9d62c808f6b3788f5e8ef8b543 Mon Sep 17 00:00:00 2001 From: "beard%netscape.com" Date: Tue, 3 Aug 1999 02:51:39 +0000 Subject: [PATCH] reverting GetDocumentBase() to be consistent with other accessors. If we decide to change this, let's change ALL of them. git-svn-id: svn://10.0.0.236/trunk@41935 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/generic/nsObjectFrame.cpp | 48 +++++++++++-------- .../layout/html/base/src/nsObjectFrame.cpp | 48 +++++++++++-------- .../plugin/base/public/nsIPluginTagInfo2.h | 2 +- .../plugin/base/src/nsPluginInstancePeer.cpp | 2 +- .../plugin/base/src/nsPluginInstancePeer.h | 2 +- .../plugin/nglsrc/nsPluginInstancePeer.cpp | 2 +- .../plugin/nglsrc/nsPluginInstancePeer.h | 2 +- .../modules/plugin/public/nsIPluginTagInfo2.h | 2 +- 8 files changed, 64 insertions(+), 44 deletions(-) diff --git a/mozilla/layout/generic/nsObjectFrame.cpp b/mozilla/layout/generic/nsObjectFrame.cpp index 7b0be993296..1a37589b0c3 100644 --- a/mozilla/layout/generic/nsObjectFrame.cpp +++ b/mozilla/layout/generic/nsObjectFrame.cpp @@ -109,7 +109,7 @@ public: NS_IMETHOD GetParameter(const char* name, const char* *result); - NS_IMETHOD GetDocumentBase(char* *result); + NS_IMETHOD GetDocumentBase(const char* *result); NS_IMETHOD GetDocumentEncoding(const char* *result); @@ -166,9 +166,10 @@ private: PRInt32 mNumParams; char **mParamNames; char **mParamVals; + char *mDocumentBase; nsIWidget *mWidget; nsIPresContext *mContext; - nsITimer *mPluginTimer; + nsITimer *mPluginTimer; nsIPluginHost *mPluginHost; }; @@ -1736,6 +1737,7 @@ nsPluginInstanceOwner::nsPluginInstanceOwner() mNumParams = 0; mParamNames = nsnull; mParamVals = nsnull; + mDocumentBase = nsnull; mPluginTimer = nsnull; mPluginHost = nsnull; } @@ -1815,6 +1817,12 @@ nsPluginInstanceOwner::~nsPluginInstanceOwner() mParamVals = nsnull; } + if (nsnull != mDocumentBase) + { + nsCRT::free(mDocumentBase); + mDocumentBase = nsnull; + } + NS_IF_RELEASE(mWidget); mContext = nsnull; } @@ -2343,10 +2351,15 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* return NS_OK; } -NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(char* *result) +NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result) { - if (nsnull != mContext) - { + nsresult rv = NS_OK; + if (nsnull == mDocumentBase) { + if (nsnull == mContext) { + *result = nsnull; + return NS_ERROR_FAILURE; + } + nsCOMPtr shell; mContext->GetShell(getter_AddRefs(shell)); @@ -2356,25 +2369,22 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(char* *result) nsCOMPtr docURL( dont_AddRef(doc->GetDocumentURL()) ); #ifdef NECKO - nsresult rv = docURL->GetSpec(result); + rv = docURL->GetSpec(&mDocumentBase); #else const char* spec; - nsresult rv = docURL->GetSpec(&spec); - if (NS_FAILED(rv)) return rv; - *result = nsCRT::strdup(spec); - if (*result == nsnull) - return NS_ERROR_OUT_OF_MEMORY; + rv = docURL->GetSpec(&spec); + if (rv == NS_OK) { + mDocumentBase = nsCRT::strdup(spec); + if (*result == nsnull) + rv = NS_ERROR_OUT_OF_MEMORY; + } #endif - - return rv; - } - else - { - *result = ""; - return NS_ERROR_FAILURE; } + if (rv == NS_OK) + *result = mDocumentBase; + return rv; } - + NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) { printf("instance owner getdocumentencoding called\n"); diff --git a/mozilla/layout/html/base/src/nsObjectFrame.cpp b/mozilla/layout/html/base/src/nsObjectFrame.cpp index 7b0be993296..1a37589b0c3 100644 --- a/mozilla/layout/html/base/src/nsObjectFrame.cpp +++ b/mozilla/layout/html/base/src/nsObjectFrame.cpp @@ -109,7 +109,7 @@ public: NS_IMETHOD GetParameter(const char* name, const char* *result); - NS_IMETHOD GetDocumentBase(char* *result); + NS_IMETHOD GetDocumentBase(const char* *result); NS_IMETHOD GetDocumentEncoding(const char* *result); @@ -166,9 +166,10 @@ private: PRInt32 mNumParams; char **mParamNames; char **mParamVals; + char *mDocumentBase; nsIWidget *mWidget; nsIPresContext *mContext; - nsITimer *mPluginTimer; + nsITimer *mPluginTimer; nsIPluginHost *mPluginHost; }; @@ -1736,6 +1737,7 @@ nsPluginInstanceOwner::nsPluginInstanceOwner() mNumParams = 0; mParamNames = nsnull; mParamVals = nsnull; + mDocumentBase = nsnull; mPluginTimer = nsnull; mPluginHost = nsnull; } @@ -1815,6 +1817,12 @@ nsPluginInstanceOwner::~nsPluginInstanceOwner() mParamVals = nsnull; } + if (nsnull != mDocumentBase) + { + nsCRT::free(mDocumentBase); + mDocumentBase = nsnull; + } + NS_IF_RELEASE(mWidget); mContext = nsnull; } @@ -2343,10 +2351,15 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* return NS_OK; } -NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(char* *result) +NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result) { - if (nsnull != mContext) - { + nsresult rv = NS_OK; + if (nsnull == mDocumentBase) { + if (nsnull == mContext) { + *result = nsnull; + return NS_ERROR_FAILURE; + } + nsCOMPtr shell; mContext->GetShell(getter_AddRefs(shell)); @@ -2356,25 +2369,22 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(char* *result) nsCOMPtr docURL( dont_AddRef(doc->GetDocumentURL()) ); #ifdef NECKO - nsresult rv = docURL->GetSpec(result); + rv = docURL->GetSpec(&mDocumentBase); #else const char* spec; - nsresult rv = docURL->GetSpec(&spec); - if (NS_FAILED(rv)) return rv; - *result = nsCRT::strdup(spec); - if (*result == nsnull) - return NS_ERROR_OUT_OF_MEMORY; + rv = docURL->GetSpec(&spec); + if (rv == NS_OK) { + mDocumentBase = nsCRT::strdup(spec); + if (*result == nsnull) + rv = NS_ERROR_OUT_OF_MEMORY; + } #endif - - return rv; - } - else - { - *result = ""; - return NS_ERROR_FAILURE; } + if (rv == NS_OK) + *result = mDocumentBase; + return rv; } - + NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) { printf("instance owner getdocumentencoding called\n"); diff --git a/mozilla/modules/plugin/base/public/nsIPluginTagInfo2.h b/mozilla/modules/plugin/base/public/nsIPluginTagInfo2.h index 0e0cdbba7f3..a9324ffd32d 100644 --- a/mozilla/modules/plugin/base/public/nsIPluginTagInfo2.h +++ b/mozilla/modules/plugin/base/public/nsIPluginTagInfo2.h @@ -87,7 +87,7 @@ public: GetParameter(const char* name, const char* *result) = 0; NS_IMETHOD - GetDocumentBase(char* *result) = 0; + GetDocumentBase(const char* *result) = 0; // Return an encoding whose name is specified in: // http://java.sun.com/products/jdk/1.1/docs/guide/intl/intl.doc.html#25303 diff --git a/mozilla/modules/plugin/base/src/nsPluginInstancePeer.cpp b/mozilla/modules/plugin/base/src/nsPluginInstancePeer.cpp index 6dcc43a29ce..70b9e48a7bb 100644 --- a/mozilla/modules/plugin/base/src/nsPluginInstancePeer.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginInstancePeer.cpp @@ -454,7 +454,7 @@ NS_IMETHODIMP nsPluginInstancePeerImpl::GetParameter(const char* name, const cha } } -NS_IMETHODIMP nsPluginInstancePeerImpl::GetDocumentBase(char* *result) +NS_IMETHODIMP nsPluginInstancePeerImpl::GetDocumentBase(const char* *result) { if (nsnull != mOwner) { diff --git a/mozilla/modules/plugin/base/src/nsPluginInstancePeer.h b/mozilla/modules/plugin/base/src/nsPluginInstancePeer.h index 6fef6df9e30..31852d3eacf 100644 --- a/mozilla/modules/plugin/base/src/nsPluginInstancePeer.h +++ b/mozilla/modules/plugin/base/src/nsPluginInstancePeer.h @@ -109,7 +109,7 @@ public: GetParameter(const char* name, const char* *result); NS_IMETHOD - GetDocumentBase(char* *result); + GetDocumentBase(const char* *result); NS_IMETHOD GetDocumentEncoding(const char* *result); diff --git a/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.cpp b/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.cpp index 6dcc43a29ce..70b9e48a7bb 100644 --- a/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.cpp +++ b/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.cpp @@ -454,7 +454,7 @@ NS_IMETHODIMP nsPluginInstancePeerImpl::GetParameter(const char* name, const cha } } -NS_IMETHODIMP nsPluginInstancePeerImpl::GetDocumentBase(char* *result) +NS_IMETHODIMP nsPluginInstancePeerImpl::GetDocumentBase(const char* *result) { if (nsnull != mOwner) { diff --git a/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.h b/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.h index 6fef6df9e30..31852d3eacf 100644 --- a/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.h +++ b/mozilla/modules/plugin/nglsrc/nsPluginInstancePeer.h @@ -109,7 +109,7 @@ public: GetParameter(const char* name, const char* *result); NS_IMETHOD - GetDocumentBase(char* *result); + GetDocumentBase(const char* *result); NS_IMETHOD GetDocumentEncoding(const char* *result); diff --git a/mozilla/modules/plugin/public/nsIPluginTagInfo2.h b/mozilla/modules/plugin/public/nsIPluginTagInfo2.h index 0e0cdbba7f3..a9324ffd32d 100644 --- a/mozilla/modules/plugin/public/nsIPluginTagInfo2.h +++ b/mozilla/modules/plugin/public/nsIPluginTagInfo2.h @@ -87,7 +87,7 @@ public: GetParameter(const char* name, const char* *result) = 0; NS_IMETHOD - GetDocumentBase(char* *result) = 0; + GetDocumentBase(const char* *result) = 0; // Return an encoding whose name is specified in: // http://java.sun.com/products/jdk/1.1/docs/guide/intl/intl.doc.html#25303