Index: Makefile.in =================================================================== RCS file: /cvsroot/mozilla/xpcom/obsolete/Makefile.in,v retrieving revision 1.23 diff -u -r1.23 Makefile.in --- Makefile.in +++ Makefile.in @@ -110,7 +110,9 @@ EXTRA_DSO_LDOPTS += \ $(DEPTH)/modules/libreg/src/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX) \ - $(MOZ_COMPONENT_LIBS) \ + $(XPCOM_GLUE_LDOPTS) \ + $(NSPR_LIBS) \ + $(XPCOM_LIBS) \ $(NULL) ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) Index: nsFileSpec.cpp =================================================================== RCS file: /cvsroot/mozilla/xpcom/obsolete/nsFileSpec.cpp,v retrieving revision 1.15 diff -u -r1.15 nsFileSpec.cpp --- nsFileSpec.cpp +++ nsFileSpec.cpp @@ -306,6 +306,25 @@ mData->mLength = inLength; } // nsSimpleCharString::ReleaseData +nsSimpleCharString::operator const char*() const { return mData ? mData->mString : 0; } +nsSimpleCharString::operator char* () + { + ReallocData(Length()); // requires detaching if shared... + return mData ? mData->mString : 0; + } +char nsSimpleCharString::operator [](int i) const { return mData ? mData->mString[i] : '\0'; } +char& nsSimpleCharString::operator [](int i) + { + if (i >= (int)Length()) + ReallocData((PRUint32)i + 1); + return mData->mString[i]; // caveat appelator + } +char& nsSimpleCharString::operator [](unsigned int i) { return (*this)[(int)i]; } +PRBool nsSimpleCharString::IsEmpty() const { return Length() == 0; } +PRUint32 nsSimpleCharString::Length() const { return mData ? mData->mLength : 0; } +void nsSimpleCharString::SetLength(PRUint32 inLength) { ReallocData(inLength); } + + //======================================================================================== NS_NAMESPACE nsFileSpecHelpers @@ -528,6 +547,11 @@ // nsFileURL implementation //======================================================================================== +nsFileURL::operator const char* () const { return (const char*)mURL; } +const char* nsFileURL::GetURLString() const { return (const char*)mURL; } +const char* nsFileURL::GetAsString() const { return (const char*)mURL; } + + #if !defined(XP_MAC) //---------------------------------------------------------------------------------------- nsFileURL::nsFileURL(const char* inString, PRBool inCreateDirs) @@ -687,6 +711,8 @@ // nsFilePath implementation //======================================================================================== +nsFilePath::operator const char* () const { return mPath; } + //---------------------------------------------------------------------------------------- nsFilePath::nsFilePath(const nsFilePath& inPath) //---------------------------------------------------------------------------------------- @@ -876,6 +902,15 @@ #endif +nsresult nsFileSpec::Error() const + { +#if !defined(XP_MAC) + if (mPath.IsEmpty() && NS_SUCCEEDED(mError)) + ((nsFileSpec*)this)->mError = NS_ERROR_NOT_INITIALIZED; +#endif + return mError; + } + //---------------------------------------------------------------------------------------- nsFileSpec::~nsFileSpec() //---------------------------------------------------------------------------------------- @@ -1186,6 +1221,8 @@ // class nsPersistentFileDescriptor //======================================================================================== +nsPersistentFileDescriptor::nsPersistentFileDescriptor() {} + //---------------------------------------------------------------------------------------- nsPersistentFileDescriptor::nsPersistentFileDescriptor(const nsPersistentFileDescriptor& inDesc) //---------------------------------------------------------------------------------------- Index: nsFileSpec.h =================================================================== RCS file: /cvsroot/mozilla/xpcom/obsolete/nsFileSpec.h,v retrieving revision 1.12 diff -u -r1.12 nsFileSpec.h --- nsFileSpec.h +++ nsFileSpec.h @@ -256,12 +256,8 @@ void operator = (const nsString&); void operator = (const nsSimpleCharString&); - operator const char*() const { return mData ? mData->mString : 0; } - operator char* () - { - ReallocData(Length()); // requires detaching if shared... - return mData ? mData->mString : 0; - } + operator const char*() const; + operator char* (); PRBool operator == (const char*); PRBool operator == (const nsString&); PRBool operator == (const nsSimpleCharString&); @@ -269,22 +265,17 @@ void operator += (const char* inString); nsSimpleCharString operator + (const char* inString) const; - char operator [](int i) const { return mData ? mData->mString[i] : '\0'; } - char& operator [](int i) - { - if (i >= (int)Length()) - ReallocData((PRUint32)i + 1); - return mData->mString[i]; // caveat appelator - } - char& operator [](unsigned int i) { return (*this)[(int)i]; } + char operator [](int i) const; + char& operator [](int i); + char& operator [](unsigned int i); void Catenate(const char* inString1, const char* inString2); void SetToEmpty(); - PRBool IsEmpty() const { return Length() == 0; } + PRBool IsEmpty() const; - PRUint32 Length() const { return mData ? mData->mLength : 0; } - void SetLength(PRUint32 inLength) { ReallocData(inLength); } + PRUint32 Length() const; + void SetLength(PRUint32 inLength); void CopyFrom(const char* inData, PRUint32 inLength); void LeafReplace(char inSeparator, const char* inLeafName); char* GetLeaf(char inSeparator) const; // use PR_Free() @@ -395,14 +386,8 @@ #endif // end of Macintosh utility methods. PRBool Valid() const { return NS_SUCCEEDED(Error()); } - nsresult Error() const - { -#if !defined(XP_MAC) - if (mPath.IsEmpty() && NS_SUCCEEDED(mError)) - ((nsFileSpec*)this)->mError = NS_ERROR_NOT_INITIALIZED; -#endif - return mError; - } + + nsresult Error() const; PRBool Failed() const { return (PRBool)NS_FAILED(Error()); } //-------------------------------------------------- @@ -553,10 +538,11 @@ void operator +=(const char* inRelativeUnixPath); nsFileURL operator +(const char* inRelativeUnixPath) const; - operator const char* () const { return (const char*)mURL; } // deprecated. - const char* GetURLString() const { return (const char*)mURL; } + operator const char* () const; // deprecated. + + const char* GetURLString() const; // Not allocated, so don't free it. - const char* GetAsString() const { return (const char*)mURL; } + const char* GetAsString() const; // Not allocated, so don't free it. #if defined(XP_MAC) @@ -594,8 +580,7 @@ NS_EXPLICIT nsFilePath(const nsFileSpec& inPath); virtual ~nsFilePath(); - - operator const char* () const { return mPath; } + operator const char* () const; // This will return a UNIX string. If you // need a string that can be passed into // NSPR, take a look at the nsNSPRPath class. @@ -641,7 +626,7 @@ //======================================================================================== { public: - nsPersistentFileDescriptor() {} + nsPersistentFileDescriptor(); // For use prior to reading in from a stream nsPersistentFileDescriptor(const nsPersistentFileDescriptor& inEncodedData); virtual ~nsPersistentFileDescriptor(); Index: component/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/xpcom/obsolete/component/Makefile.in,v retrieving revision 1.13 diff -u -r1.13 component/Makefile.in --- component/Makefile.in +++ component/Makefile.in @@ -76,7 +76,9 @@ EXTRA_DSO_LDOPTS += \ $(DEPTH)/modules/libreg/src/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX) \ - $(MOZ_COMPONENT_LIBS) \ + $(XPCOM_GLUE_LDOPTS) \ + $(NSPR_LIBS) \ + $(XPCOM_LIBS) \ $(MOZ_XPCOM_OBSOLETE_LIBS) \ $(NULL)