Index: trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl	(revision 102307)
+++ trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl	(revision 102309)
@@ -61,14 +61,4 @@
 };
 
-[uuid(0ee22850-bc6a-11d5-9134-0010a4e73d9a)]
-interface nsIInterfaceInfoSuperManager : nsIInterfaceInfoManager
-{
-    void addAdditionalManager(in nsIInterfaceInfoManager manager);        
-    void removeAdditionalManager(in nsIInterfaceInfoManager manager);        
-
-    PRBool hasAdditionalManagers();
-    nsISimpleEnumerator enumerateAdditionalManagers();
-};
-
 %{C++
 #define NS_INTERFACEINFOMANAGER_SERVICE_CLASSNAME  \
Index: trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp	(revision 102307)
+++ trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp	(revision 102309)
@@ -49,7 +49,6 @@
 #define NS_ZIPLOADER_CONTRACTID NS_XPTLOADER_CONTRACTID_PREFIX "zip"
 
-NS_IMPL_THREADSAFE_ISUPPORTS2(xptiInterfaceInfoManager, 
-                              nsIInterfaceInfoManager,
-                              nsIInterfaceInfoSuperManager)
+NS_IMPL_THREADSAFE_ISUPPORTS1(xptiInterfaceInfoManager, 
+                              nsIInterfaceInfoManager);
 
 static xptiInterfaceInfoManager* gInterfaceInfoManager = nsnull;
@@ -116,6 +115,5 @@
            mResolveLock != NIL_RTSEMFASTMUTEX &&
            mAutoRegLock != NIL_RTSEMFASTMUTEX &&
-           mInfoMonitor &&
-           mAdditionalManagersLock != NIL_RTSEMFASTMUTEX;
+           mInfoMonitor;
 }        
 
@@ -126,5 +124,4 @@
         mAutoRegLock(NIL_RTSEMFASTMUTEX),
         mInfoMonitor(nsAutoMonitor::NewMonitor("xptiInfoMonitor")),
-        mAdditionalManagersLock(NIL_RTSEMFASTMUTEX),
         mSearchPath(aSearchPath)
 {
@@ -133,7 +130,4 @@
 
     vrc = RTSemFastMutexCreate(&mAutoRegLock);
-    AssertRC(vrc); RT_NOREF(vrc);
-
-    vrc = RTSemFastMutexCreate(&mAdditionalManagersLock);
     AssertRC(vrc); RT_NOREF(vrc);
 
@@ -158,6 +152,4 @@
     if(mInfoMonitor)
         nsAutoMonitor::DestroyMonitor(mInfoMonitor);
-    if(mAdditionalManagersLock)
-        RTSemFastMutexDestroy(mAdditionalManagersLock);
 
     gInterfaceInfoManager = nsnull;
@@ -1972,161 +1964,4 @@
 /***************************************************************************/
 
-class xptiAdditionalManagersEnumerator : public nsISimpleEnumerator 
-{
-public:
-    NS_DECL_ISUPPORTS
-    NS_DECL_NSISIMPLEENUMERATOR
-
-    xptiAdditionalManagersEnumerator();
-
-    PRBool SizeTo(PRUint32 likelyCount) {return mArray.SizeTo(likelyCount);}
-    PRBool AppendElement(nsIInterfaceInfoManager* element);
-
-private:
-    ~xptiAdditionalManagersEnumerator() {}
-
-    nsSupportsArray mArray;
-    PRUint32        mIndex;
-    PRUint32        mCount;
-};
-
-NS_IMPL_ISUPPORTS1(xptiAdditionalManagersEnumerator, nsISimpleEnumerator)
-
-xptiAdditionalManagersEnumerator::xptiAdditionalManagersEnumerator()
-    : mIndex(0), mCount(0)
-{
-}
-
-PRBool xptiAdditionalManagersEnumerator::AppendElement(nsIInterfaceInfoManager* element)
-{
-    if(!mArray.AppendElement(NS_STATIC_CAST(nsISupports*, element)))
-        return PR_FALSE;
-    mCount++;
-    return PR_TRUE;
-}
-
-/* boolean hasMoreElements (); */
-NS_IMETHODIMP xptiAdditionalManagersEnumerator::HasMoreElements(PRBool *_retval)
-{
-    *_retval = mIndex < mCount;
-    return NS_OK;
-}
-
-/* nsISupports getNext (); */
-NS_IMETHODIMP xptiAdditionalManagersEnumerator::GetNext(nsISupports **_retval)
-{
-    if(!(mIndex < mCount))
-    {
-        NS_ERROR("Bad nsISimpleEnumerator caller!");
-        return NS_ERROR_FAILURE;    
-    }
-
-    *_retval = mArray.ElementAt(mIndex++);
-    return *_retval ? NS_OK : NS_ERROR_FAILURE;
-}
-
-/***************************************************************************/
-
-/* void addAdditionalManager (in nsIInterfaceInfoManager manager); */
-NS_IMETHODIMP xptiInterfaceInfoManager::AddAdditionalManager(nsIInterfaceInfoManager *manager)
-{
-    nsCOMPtr<nsIWeakReference> weakRef = do_GetWeakReference(manager);
-    nsISupports* ptrToAdd = weakRef ? 
-                    NS_STATIC_CAST(nsISupports*, weakRef) :
-                    NS_STATIC_CAST(nsISupports*, manager);
-    { // scoped lock...
-        nsAutoLock lock(mAdditionalManagersLock);
-        PRInt32 index;
-        nsresult rv = mAdditionalManagers.GetIndexOf(ptrToAdd, &index);
-        if(NS_FAILED(rv) || -1 != index)
-            return NS_ERROR_FAILURE;
-        if(!mAdditionalManagers.AppendElement(ptrToAdd))
-            return NS_ERROR_OUT_OF_MEMORY;
-    }
-    return NS_OK;
-}
-
-/* void removeAdditionalManager (in nsIInterfaceInfoManager manager); */
-NS_IMETHODIMP xptiInterfaceInfoManager::RemoveAdditionalManager(nsIInterfaceInfoManager *manager)
-{
-    nsCOMPtr<nsIWeakReference> weakRef = do_GetWeakReference(manager);
-    nsISupports* ptrToRemove = weakRef ? 
-                    NS_STATIC_CAST(nsISupports*, weakRef) :
-                    NS_STATIC_CAST(nsISupports*, manager);
-    { // scoped lock...
-        nsAutoLock lock(mAdditionalManagersLock);
-        if(!mAdditionalManagers.RemoveElement(ptrToRemove))
-            return NS_ERROR_FAILURE;
-    }
-    return NS_OK;
-}
-
-/* PRBool hasAdditionalManagers (); */
-NS_IMETHODIMP xptiInterfaceInfoManager::HasAdditionalManagers(PRBool *_retval)
-{
-    PRUint32 count;
-    nsresult rv = mAdditionalManagers.Count(&count);
-    *_retval = count != 0;
-    return rv;
-}
-
-/* nsISimpleEnumerator enumerateAdditionalManagers (); */
-NS_IMETHODIMP xptiInterfaceInfoManager::EnumerateAdditionalManagers(nsISimpleEnumerator **_retval)
-{
-    nsAutoLock lock(mAdditionalManagersLock);
-
-    PRUint32 count;
-    nsresult rv = mAdditionalManagers.Count(&count);
-    if(NS_FAILED(rv))
-        return rv;
-
-    nsCOMPtr<xptiAdditionalManagersEnumerator> enumerator = 
-        new xptiAdditionalManagersEnumerator();
-    if(!enumerator)
-        return NS_ERROR_OUT_OF_MEMORY;
-
-    enumerator->SizeTo(count);
-
-    for(PRUint32 i = 0; i < count; /* i incremented in the loop body */)
-    {
-        nsCOMPtr<nsISupports> raw = 
-            dont_AddRef(mAdditionalManagers.ElementAt(i++));
-        if(!raw)
-            return NS_ERROR_FAILURE;
-        nsCOMPtr<nsIWeakReference> weakRef = do_QueryInterface(raw);
-        if(weakRef)
-        {
-            nsCOMPtr<nsIInterfaceInfoManager> manager = 
-                do_QueryReferent(weakRef);
-            if(manager)
-            {
-                if(!enumerator->AppendElement(manager))
-                    return NS_ERROR_FAILURE;
-            }
-            else
-            {
-                // The manager is no more. Remove the element.
-                if(!mAdditionalManagers.RemoveElementAt(--i))
-                    return NS_ERROR_FAILURE;
-                count--;
-            }
-        }
-        else
-        {
-            // We *know* we put a pointer to either a nsIWeakReference or
-            // an nsIInterfaceInfoManager into the array, so we can avoid an
-            // extra QI here and just do a cast.
-            if(!enumerator->AppendElement(
-                    NS_REINTERPRET_CAST(nsIInterfaceInfoManager*, raw.get())))
-                return NS_ERROR_FAILURE;
-        }
-    }
-    
-    NS_ADDREF(*_retval = enumerator);
-    return NS_OK;
-}
-
-/***************************************************************************/
-
 XPTI_PUBLIC_API(nsIInterfaceInfoManager*)
 XPTI_GetInterfaceInfoManager()
Index: trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiprivate.h
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiprivate.h	(revision 102307)
+++ trunk/src/libs/xpcom18a4/xpcom/reflect/xptinfo/src/xptiprivate.h	(revision 102309)
@@ -69,5 +69,4 @@
 
 #include "nsISupportsArray.h"
-#include "nsSupportsArray.h"
 #include "nsInt64.h"
 
@@ -859,9 +858,8 @@
 
 class xptiInterfaceInfoManager 
-    : public nsIInterfaceInfoSuperManager
+    : public nsIInterfaceInfoManager
 {
     NS_DECL_ISUPPORTS
     NS_DECL_NSIINTERFACEINFOMANAGER
-    NS_DECL_NSIINTERFACEINFOSUPERMANAGER
 
     // helper
@@ -965,6 +963,4 @@
     RTSEMFASTMUTEX               mAutoRegLock;
     PRMonitor*                   mInfoMonitor;
-    RTSEMFASTMUTEX               mAdditionalManagersLock;
-    nsSupportsArray              mAdditionalManagers;
     nsCOMPtr<nsISupportsArray>   mSearchPath;
 };
