Index: trunk/src/libs/xpcom18a4/nsprpub/pr/include/private/primpl.h
===================================================================
--- trunk/src/libs/xpcom18a4/nsprpub/pr/include/private/primpl.h	(revision 101776)
+++ trunk/src/libs/xpcom18a4/nsprpub/pr/include/private/primpl.h	(revision 101777)
@@ -200,10 +200,5 @@
 		(thr->interrupt_blocked = 0)
 
-#ifdef GC_LEAK_DETECTOR
-/* All threads are GCable. */
-#define _PT_IS_GCABLE_THREAD(thr) 1
-#else
 #define _PT_IS_GCABLE_THREAD(thr) ((thr)->state & PT_THREAD_GCABLE)
-#endif /* GC_LEAK_DETECTOR */
 
 /*
@@ -651,10 +646,5 @@
 #endif
 
-#ifdef GC_LEAK_DETECTOR
-/* All threads are GCable. */
-#define _PR_IS_GCABLE_THREAD(thr) 1
-#else
 #define _PR_IS_GCABLE_THREAD(thr) ((thr)->flags & _PR_GCABLE_THREAD)
-#endif /* GC_LEAK_DETECTOR */
 
 #define _PR_PENDING_INTERRUPT(thr)					\
@@ -1802,7 +1792,4 @@
 extern void _PR_LogCleanup(void);
 extern void _PR_InitLayerCache(void);
-#ifdef GC_LEAK_DETECTOR
-extern void _PR_InitGarbageCollector(void);
-#endif
 
 extern PRBool _pr_initialized;
Index: trunk/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c
===================================================================
--- trunk/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c	(revision 101776)
+++ trunk/src/libs/xpcom18a4/nsprpub/pr/src/misc/prinit.c	(revision 101777)
@@ -213,16 +213,5 @@
     PR_ASSERT(NULL != _pr_sleeplock);
 
-#ifdef GC_LEAK_DETECTOR
-    _PR_InitGarbageCollector();
-#endif
-
     _PR_InitThreads(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0);
-
-#ifdef WIN16
-	{
-	PRInt32 top;   /* artificial top of stack, win16 */
-    _pr_top_of_task_stack = (char *) &top;
-	}
-#endif
 
 #ifndef _PR_GLOBAL_THREADS_ONLY
Index: trunk/src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptthread.c
===================================================================
--- trunk/src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptthread.c	(revision 101776)
+++ trunk/src/libs/xpcom18a4/nsprpub/pr/src/pthreads/ptthread.c	(revision 101777)
@@ -102,40 +102,4 @@
 #endif
 
-#if defined(GC_LEAK_DETECTOR) && (__GLIBC__ >= 2) && defined(__i386__) 
-
-#include <setjmp.h>
-
-typedef struct stack_frame stack_frame;
-
-struct stack_frame {
-    stack_frame* next;
-    void* pc;
-};
-
-static stack_frame* GetStackFrame()
-{
-    jmp_buf jb;
-    stack_frame* currentFrame;
-    setjmp(jb);
-    currentFrame = (stack_frame*)(jb[0].__jmpbuf[JB_BP]);
-    currentFrame = currentFrame->next;
-    return currentFrame;
-}
-
-static void* GetStackTop()
-{
-    stack_frame* frame;
-    frame = GetStackFrame();
-    while (frame != NULL)
-    {
-        ptrdiff_t pc = (ptrdiff_t)frame->pc;
-        if ((pc < 0x08000000) || (pc > 0x7fffffff) || (frame->next < frame))
-            return frame;
-        frame = frame->next;
-    }
-    return NULL;
-}
-#endif /* GC_LEAK_DETECTOR && (__GLIBC__ >= 2) && __i386__ */
-
 /*
 ** Initialize a stack for a native pthread thread
@@ -154,11 +118,6 @@
         ts->stackTop = ts->allocBase;
 #else
-#ifdef GC_LEAK_DETECTOR
-        ts->stackTop    = GetStackTop();
-        ts->stackBottom = ts->stackTop - ts->stackSize;
-#else
         ts->stackTop    = ts->allocBase;
         ts->stackBottom = ts->allocBase - ts->stackSize;
-#endif
 #endif
     }
Index: trunk/src/libs/xpcom18a4/xpcom/base/nsLeakDetector.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/base/nsLeakDetector.cpp	(revision 101776)
+++ 	(revision )
@@ -1,248 +1,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Mozilla browser.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications, Inc.
- * Portions created by the Initial Developer are Copyright (C) 1999
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Patrick C. Beard <beard@netscape.com>
- *   Scott Collins <scc@mozilla.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#if defined(GC_LEAK_DETECTOR)
-
-#include "nsLeakDetector.h"
-#include "nsCOMPtr.h"
-#include "nsIComponentManager.h"
-#include "nsIServiceManager.h"
-#include "nsIGenericFactory.h"
-#include "nsILeakDetector.h"
-#include "nsICollection.h"
-
-#include <stdio.h>
-#include <time.h>
-
-#include "gc.h"
-
-extern "C" {
-extern FILE *GC_stdout, *GC_stderr;
-extern void GC_trace_object(GC_PTR object, int verbose);
-extern void GC_mark_object(GC_PTR object, GC_word mark);
-}
-
-static nsresult nextLeakFile()
-{
-	if (GC_stderr != NULL)
-		fclose(GC_stderr);
-	
-	// generate a time stamped report name.
-	time_t timer;
-	time(&timer);
-	tm* now = localtime(&timer);
-	
-	char reportName[256];
-	sprintf(reportName, "Leaks%02d%02d%02d",
-			now->tm_hour, now->tm_min, now->tm_sec);
-	GC_stderr = fopen(reportName, "w");
-	
-	return NS_OK;
-}
-
-static FILE* openTraceFile()
-{
-	// generate a time stamped report name.
-	time_t timer;
-	time(&timer);
-	tm* now = localtime(&timer);
-	
-	char reportName[256];
-	sprintf(reportName, "Trace%02d%02d%02d",
-			now->tm_hour, now->tm_min, now->tm_sec);
-	return fopen(reportName, "w");
-}
-
-class nsLeakDetector : public nsILeakDetector {
-public:
-	nsLeakDetector();
-	
-	NS_DECL_ISUPPORTS	
-	NS_DECL_NSILEAKDETECTOR
-private:
-	~nsLeakDetector() {}
-};
-
-NS_IMPL_ISUPPORTS1(nsLeakDetector, nsILeakDetector)
-
-nsLeakDetector::nsLeakDetector() {
-   }
-
-NS_METHOD nsLeakDetector::DumpLeaks()
-{
-	GC_gcollect();
-
-	return nextLeakFile();
-}
-
-NS_METHOD nsLeakDetector::TraceObject(nsISupports* object, PRBool verbose)
-{
-    FILE* trace = openTraceFile();
-    if (trace != NULL) {
-        FILE* old_stderr = GC_stderr;
-        GC_stderr = trace;
-        GC_trace_object(object, (verbose ? 1 : 0));
-        GC_stderr = old_stderr;
-        fclose(trace);
-        return NS_OK;
-    }
-    return NS_ERROR_FAILURE;
-}
-
-NS_METHOD nsLeakDetector::TraceCollection(nsICollection* objects, PRBool verbose)
-{
-    PRUint32 count;
-    if (NS_FAILED(objects->Count(&count)))
-        return NS_ERROR_FAILURE;
-
-    nsCOMPtr<nsISupports>* elements = new nsCOMPtr<nsISupports>[count];
-    if (elements == nsnull)
-        return NS_ERROR_OUT_OF_MEMORY;
-
-    for (PRUint32 i = 0; i < count; ++i)
-        objects->GetElementAt(i, getter_AddRefs(elements[i]));
-
-    nsresult rv = NS_ERROR_FAILURE;
-    FILE* trace = openTraceFile();
-    if (trace != NULL) {
-        FILE* old_stderr = GC_stderr;
-        GC_stderr = trace;
-        GC_trace_object(elements, (verbose ? 1 : 0));
-        GC_stderr = old_stderr;
-        fclose(trace);
-        rv = NS_OK;
-    }
-    
-    delete[] elements;
-    
-    return rv;
-}
-
-NS_METHOD nsLeakDetector::MarkObject(nsISupports* object, PRBool marked)
-{
-    GC_mark_object(object, (marked ? 1 : 0));
-    return NS_OK;
-}
-
-NS_METHOD nsLeakDetector::GetServices(nsISupports* *result)
-{
-    return NS_GetServiceManager((nsIServiceManager**)result);
-}
-
-#define NS_CLEAKDETECTOR_CID_STR "bb1ba360-1dd1-11b2-b30e-aa2314429f54"
-#define NS_CLEAKDETECTOR_CID {0xbb1ba360, 0x1dd1, 0x11b2, {0xb3, 0x0e, 0xaa, 0x23, 0x14, 0x42, 0x9f, 0x54}}
-#define NS_CLEAKDETECTOR_CONTRACTID "@mozilla.org/xpcom/leakdetector;1"
-
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsLeakDetector)
-
-static NS_DEFINE_CID(kCLeakDetectorCID, NS_CLEAKDETECTOR_CID);
-
-nsresult NS_InitLeakDetector()
-{
-	nsresult rv;
-
-	// open the first leak file.
-	rv = nextLeakFile();
-	if (NS_FAILED(rv))
-		return rv;
-
-    static const nsModuleComponentInfo info = {
-        "Leak Detector", kCLeakDetectorCID, NS_CLEAKDETECTOR_CONTRACTID, nsLeakDetectorConstructor
-    };
-
-	// create a generic factory for the leak detector.
-	nsCOMPtr<nsIGenericFactory> factory;
-	rv = NS_NewGenericFactory(getter_AddRefs(factory), &info);
-	if (NS_FAILED(rv))
-		return rv;
-
-	// register this factory with the component manager.
-	return nsComponentManager::RegisterFactory(info.mCID, info.mDescription, info.mContractID, factory, PR_TRUE);
-}
-
-#ifdef XP_MAC
-#define SHUTDOWN_LEAKS_EARLY
-#undef SHUTDOWN_LEAKS_MEDIUM
-#undef SHUTDOWN_LEAKS_LATE
-#else
-#undef SHUTDOWN_LEAKS_EARLY
-#undef SHUTDOWN_LEAKS_MEDIUM
-#define SHUTDOWN_LEAKS_LATE
-#endif
-
-class LeakDetectorFinalizer
-{
-public:
-	~LeakDetectorFinalizer();
-};
-
-#ifdef SHUTDOWN_LEAKS_LATE
-// do shutdown leaks when XPCOM library is unloaded
-LeakDetectorFinalizer gLeakDetectorFinalizer;
-#endif
-
-LeakDetectorFinalizer::~LeakDetectorFinalizer()
-{
-	GC_gcollect();
-
-#if 0
-	nextLeakFile();
-	if (GC_stdout != NULL) {
-		fprintf(GC_stdout, "ShutDown Leaks\n");
-		GC_clear_roots();
-		GC_gcollect();
-	}
-#endif
-}
-
-nsresult NS_ShutdownLeakDetector()
-{
-#if defined(SHUTDOWN_LEAKS_MEDIUM)
-    // Make this the first atexit() called so it's before the atexit() crashes
-    // see http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=23552
-    static LeakDetectorFinalizer trick;
-#elif defined(SHUTDOWN_LEAKS_EARLY)
-    // do shutdown leaks now
-    LeakDetectorFinalizer trick;
-#endif
-	return NS_OK;
-}
-
-#endif /* defined(GC_LEAK_DETECTOR) */
Index: trunk/src/libs/xpcom18a4/xpcom/base/nsLeakDetector.h
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/base/nsLeakDetector.h	(revision 101776)
+++ 	(revision )
@@ -1,60 +1,0 @@
-/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is the Mozilla browser.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications, Inc.
- * Portions created by the Initial Developer are Copyright (C) 1999
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Patrick C. Beard <beard@netscape.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nsLeakDetector_h
-#define nsLeakDetector_h
-
-#ifndef nsError_h
-#include "nsError.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-nsresult NS_InitGarbageCollector(void);
-nsresult NS_InitLeakDetector(void);
-nsresult NS_ShutdownLeakDetector(void);
-nsresult NS_ShutdownGarbageCollector(void);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* nsLeakDetector_h */
Index: trunk/src/libs/xpcom18a4/xpcom/base/nsTraceRefcntImpl.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/base/nsTraceRefcntImpl.cpp	(revision 101776)
+++ trunk/src/libs/xpcom18a4/xpcom/base/nsTraceRefcntImpl.cpp	(revision 101777)
@@ -584,8 +584,4 @@
 static PRInt32 GetSerialNumber(void* aPtr, PRBool aCreate)
 {
-#ifdef GC_LEAK_DETECTOR
-  // need to disguise this pointer, so the table won't keep the object alive.
-  aPtr = (void*) ~PLHashNumber(aPtr);
-#endif
   PLHashEntry** hep = PL_HashTableRawLookup(gSerialNumbers, PLHashNumber(NS_PTR_TO_INT32(aPtr)), aPtr);
   if (hep && *hep) {
@@ -607,8 +603,4 @@
 static PRInt32* GetRefCount(void* aPtr)
 {
-#ifdef GC_LEAK_DETECTOR
-  // need to disguise this pointer, so the table won't keep the object alive.
-  aPtr = (void*) ~PLHashNumber(aPtr);
-#endif
   PLHashEntry** hep = PL_HashTableRawLookup(gSerialNumbers, PLHashNumber(NS_PTR_TO_INT32(aPtr)), aPtr);
   if (hep && *hep) {
@@ -621,8 +613,4 @@
 static PRInt32* GetCOMPtrCount(void* aPtr)
 {
-#ifdef GC_LEAK_DETECTOR
-  // need to disguise this pointer, so the table won't keep the object alive.
-  aPtr = (void*) ~PLHashNumber(aPtr);
-#endif
   PLHashEntry** hep = PL_HashTableRawLookup(gSerialNumbers, PLHashNumber(NS_PTR_TO_INT32(aPtr)), aPtr);
   if (hep && *hep) {
@@ -635,8 +623,4 @@
 static void RecycleSerialNumberPtr(void* aPtr)
 {
-#ifdef GC_LEAK_DETECTOR
-  // need to disguise this pointer, so the table won't keep the object alive.
-  aPtr = (void*) ~PLHashNumber(aPtr);
-#endif
   PL_HashTableRemove(gSerialNumbers, aPtr);
 }
Index: trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp	(revision 101776)
+++ trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp	(revision 101777)
@@ -110,7 +110,4 @@
 #include "nsVariant.h"
 
-#ifdef GC_LEAK_DETECTOR
-#include "nsLeakDetector.h"
-#endif
 #include "nsRecyclingAllocator.h"
 
@@ -634,9 +631,4 @@
     if (NS_FAILED(rv)) return rv;
 
-#ifdef GC_LEAK_DETECTOR
-  rv = NS_InitLeakDetector();
-    if (NS_FAILED(rv)) return rv;
-#endif
-
     // 2. Register the global services with the component manager so that
     //    clients can create new objects.
@@ -970,9 +962,4 @@
     nsTraceRefcntImpl::ResetStatistics();
     nsTraceRefcntImpl::Shutdown();
-#endif
-
-#ifdef GC_LEAK_DETECTOR
-    // Shutdown the Leak detector.
-    NS_ShutdownLeakDetector();
 #endif
 
