From 88cece66e51bd8a8cf23ce96dacff2d00f48b059 Mon Sep 17 00:00:00 2001 From: "peterlubczynski%netscape.com" Date: Fri, 14 Dec 2001 03:52:12 +0000 Subject: [PATCH] Fixing GetParameters() back to the way it was, returning success for zero parameters bug 114973 r=av sr=beard a=brendan git-svn-id: svn://10.0.0.236/trunk@110453 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/generic/nsObjectFrame.cpp | 11 +++++------ mozilla/layout/html/base/src/nsObjectFrame.cpp | 11 +++++------ .../modules/plugin/base/src/ns4xPluginInstance.cpp | 3 ++- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/mozilla/layout/generic/nsObjectFrame.cpp b/mozilla/layout/generic/nsObjectFrame.cpp index 4109d0a7a2f..51779dd0f49 100644 --- a/mozilla/layout/generic/nsObjectFrame.cpp +++ b/mozilla/layout/generic/nsObjectFrame.cpp @@ -2419,13 +2419,12 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameters(PRUint16& n, const char*const nsresult rv = EnsureCachedAttrParamArrays(); NS_ENSURE_SUCCESS(rv, rv); - // make sure we have at least one param tag because embed's don't have any - if (!mNumCachedParams) - return NS_ERROR_FAILURE; - n = mNumCachedParams; - names = (const char **)(mCachedAttrParamNames + mNumCachedAttrs + 1); - values = (const char **)(mCachedAttrParamValues + mNumCachedAttrs + 1); + if (n) { + names = (const char **)(mCachedAttrParamNames + mNumCachedAttrs + 1); + values = (const char **)(mCachedAttrParamValues + mNumCachedAttrs + 1); + } else + names = values = nsnull; return rv; } diff --git a/mozilla/layout/html/base/src/nsObjectFrame.cpp b/mozilla/layout/html/base/src/nsObjectFrame.cpp index 4109d0a7a2f..51779dd0f49 100644 --- a/mozilla/layout/html/base/src/nsObjectFrame.cpp +++ b/mozilla/layout/html/base/src/nsObjectFrame.cpp @@ -2419,13 +2419,12 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameters(PRUint16& n, const char*const nsresult rv = EnsureCachedAttrParamArrays(); NS_ENSURE_SUCCESS(rv, rv); - // make sure we have at least one param tag because embed's don't have any - if (!mNumCachedParams) - return NS_ERROR_FAILURE; - n = mNumCachedParams; - names = (const char **)(mCachedAttrParamNames + mNumCachedAttrs + 1); - values = (const char **)(mCachedAttrParamValues + mNumCachedAttrs + 1); + if (n) { + names = (const char **)(mCachedAttrParamNames + mNumCachedAttrs + 1); + values = (const char **)(mCachedAttrParamValues + mNumCachedAttrs + 1); + } else + names = values = nsnull; return rv; } diff --git a/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp b/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp index 01e46bf1b3f..818c64ffb7f 100644 --- a/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp +++ b/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp @@ -823,7 +823,8 @@ nsresult ns4xPluginInstance::InitializePlugin(nsIPluginInstancePeer* peer) const char* const* pvalues = nsnull; if (NS_SUCCEEDED(taginfo->GetParameters(pcount, pnames, pvalues))) { NS_ASSERTION(nsnull == values[count], "attribute/parameter array not setup correctly for 4.x plugins"); - count += ++pcount; //if it's all setup correctly, then all we need is to change the count + if (pcount) + count += ++pcount; //if it's all setup correctly, then all we need is to change the count (attrs + PARAM/blank + params) } } }