From 95cf8cba89e6e03d1e5f6ef703e0db371ab13ed8 Mon Sep 17 00:00:00 2001 From: "benjamin%smedbergs.us" Date: Thu, 17 Aug 2006 17:10:24 +0000 Subject: [PATCH] Bug 348992 - gFastLoadService_ exported unnecessarily, r=brendan git-svn-id: svn://10.0.0.236/trunk@207753 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/io/Makefile.in | 1 - mozilla/xpcom/io/nsFastLoadPtr.h | 108 ------------------------- mozilla/xpcom/io/nsFastLoadService.cpp | 7 -- 3 files changed, 116 deletions(-) delete mode 100644 mozilla/xpcom/io/nsFastLoadPtr.h diff --git a/mozilla/xpcom/io/Makefile.in b/mozilla/xpcom/io/Makefile.in index 86e0dcee4cb..35527674951 100644 --- a/mozilla/xpcom/io/Makefile.in +++ b/mozilla/xpcom/io/Makefile.in @@ -100,7 +100,6 @@ EXPORTS = \ nsAppDirectoryServiceDefs.h \ nsDirectoryService.h \ nsEscape.h \ - nsFastLoadPtr.h \ nsFastLoadService.h \ nsLinebreakConverter.h \ nsLocalFile.h \ diff --git a/mozilla/xpcom/io/nsFastLoadPtr.h b/mozilla/xpcom/io/nsFastLoadPtr.h deleted file mode 100644 index 24398040689..00000000000 --- a/mozilla/xpcom/io/nsFastLoadPtr.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** 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 Mozilla FastLoad code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 2001 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Brendan Eich (original author) - * - * 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 nsFastLoadPtr_h___ -#define nsFastLoadPtr_h___ - -/** - * Mozilla FastLoad file object pointer template type. - * - * Use nsFastLoadPtr rather than nsCOMPtr when declaring a strong XPCOM - * ref member of a data structure that's conditionally loaded at application - * startup. You must be willing to tolerate the null mRawPtr test on every - * dereference of this member pointer, or else copy it to a local to optimize - * away the cost. - */ - -#ifndef nsCOMPtr_h___ -#include "nsCOMPtr.h" -#endif - -#ifndef nsIFastLoadService_h___ -#include "nsIFastLoadService.h" -#endif - -/** - * nsFastLoadPtr is a template class, so we don't want a class static service - * pointer member declared in nsFastLoadPtr, above. Plus, we need special - * declaration magic to export data across DLL/DSO boundaries. So we use an - * old-fashioned global variable that refers weakly to the one true FastLoad - * service. This pointer is maintained by that singleton's ctor and dtor. - */ -PR_EXPORT_DATA(nsIFastLoadService*) gFastLoadService_; - -template -class nsFastLoadPtr : public nsCOMPtr { - public: - nsDerivedSafe* get() const { - if (!this->mRawPtr) { - gFastLoadService_->GetFastLoadReferent( - NS_REINTERPRET_CAST(nsISupports**, - &this->mRawPtr)); - } - return NS_REINTERPRET_CAST(nsDerivedSafe*, this->mRawPtr); - } - - /** - * Deserialize an nsFastLoadPtr from aInputStream, skipping the referent - * object, but saving the object's offset for later deserialization. - * - * Lowercase name _a la_ get, because it's called the same way -- not via - * operator->(). - */ - nsresult read(nsIObjectInputStream* aInputStream) { - return gFastLoadService_->ReadFastLoadPtr(aInputStream, - NS_REINTERPRET_CAST(nsISupports**, - &this->mRawPtr)); - } - - /** - * Serialize an nsFastLoadPtr reference and possibly the referent object, - * if that object has not yet been serialized. - * - * Lowercase name _a la_ get, because it's called the same way -- not via - * operator->(). - */ - nsresult write(nsIObjectOutputStream* aOutputStream) { - return gFastLoadService_->WriteFastLoadPtr(aOutputStream, - NS_REINTERPRET_CAST(nsISupports*, - this->mRawPtr)); - } -}; - -#endif // nsFastLoadPtr_h___ diff --git a/mozilla/xpcom/io/nsFastLoadService.cpp b/mozilla/xpcom/io/nsFastLoadService.cpp index bb00cd7c2e3..ea19ada661f 100644 --- a/mozilla/xpcom/io/nsFastLoadService.cpp +++ b/mozilla/xpcom/io/nsFastLoadService.cpp @@ -45,7 +45,6 @@ #include "nsAutoLock.h" #include "nsCOMPtr.h" #include "nsFastLoadFile.h" -#include "nsFastLoadPtr.h" #include "nsFastLoadService.h" #include "nsString.h" @@ -58,8 +57,6 @@ #include "nsISeekableStream.h" #include "nsISupports.h" -PR_IMPLEMENT_DATA(nsIFastLoadService*) gFastLoadService_ = nsnull; - NS_IMPL_THREADSAFE_ISUPPORTS1(nsFastLoadService, nsIFastLoadService) nsFastLoadService::nsFastLoadService() @@ -67,14 +64,10 @@ nsFastLoadService::nsFastLoadService() mFastLoadPtrMap(nsnull), mDirection(0) { - NS_ASSERTION(gFastLoadService_ == nsnull, "double FastLoadService init?"); - gFastLoadService_ = this; } nsFastLoadService::~nsFastLoadService() { - gFastLoadService_ = nsnull; - if (mInputStream) mInputStream->Close(); if (mOutputStream)