From 6a502d3b0e729e12f2d3441aa098a985232de4e0 Mon Sep 17 00:00:00 2001 From: "cls%seawood.org" Date: Sat, 7 Aug 1999 06:01:31 +0000 Subject: [PATCH] Various fixes to let the tree compile with gcc 2.95: String constants are now (const char *)s and must be explicitly cast to (char *). operator new is expected to be empty or throw an expection instead of returning null. (ifdef'd for gcc 2.95+) Stricter checks on register clobbering in embedded asm. (at least I think that's what it is) Expects the main function to return int, not something similiar to it like PRInt32. Still requires a tweak to remove -mno-486 from NSPR's *.mk files. git-svn-id: svn://10.0.0.236/trunk@42646 18797224-902f-48f8-a5cc-f745e15eee43 --- .../templates/src/nsXULTemplateBuilder.cpp | 2 +- .../extensions/cookie/tests/TestCookie.cpp | 2 +- mozilla/layout/xul/base/src/nsMenuFrame.cpp | 2 +- .../base/search/src/nsMsgLocalSearch.cpp | 2 +- mozilla/mailnews/base/src/nsMessenger.cpp | 2 +- mozilla/mailnews/compose/src/nsMsgCompose.cpp | 6 ++--- .../rdf/content/src/nsRDFGenericBuilder.cpp | 2 +- .../rdf/content/src/nsXULTemplateBuilder.cpp | 2 +- mozilla/xpcom/base/nsIPtr.h | 24 ++++++++++++++++--- .../src/md/unix/xptcstubs_unixish_x86.cpp | 2 +- mozilla/xpcom/threads/nsAutoLock.h | 6 +++++ 11 files changed, 38 insertions(+), 14 deletions(-) diff --git a/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp b/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp index 0f22e327df4..25b45ac6209 100644 --- a/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp +++ b/mozilla/content/xul/templates/src/nsXULTemplateBuilder.cpp @@ -1830,7 +1830,7 @@ RDFGenericBuilderImpl::BuildContentFromTemplate(nsIContent *aTemplateNode, if (NS_FAILED(rv)) return rv; // test to see if the container has contents - char* isEmpty = IsEmpty(realKid, aChild) ? "true" : "false"; + char* isEmpty = IsEmpty(realKid, aChild) ? (char *)"true" : (char *)"false"; rv = realKid->SetAttribute(kNameSpaceID_None, kEmptyAtom, isEmpty, PR_FALSE); if (NS_FAILED(rv)) return rv; } diff --git a/mozilla/extensions/cookie/tests/TestCookie.cpp b/mozilla/extensions/cookie/tests/TestCookie.cpp index b6eb207041b..249f52875c5 100644 --- a/mozilla/extensions/cookie/tests/TestCookie.cpp +++ b/mozilla/extensions/cookie/tests/TestCookie.cpp @@ -9,7 +9,7 @@ static NS_DEFINE_IID(kCookieServiceCID, NS_COOKIESERVICE_CID); -PRInt32 main(PRInt32 argc, char *argv[]) +int main(PRInt32 argc, char *argv[]) { nsICookieService *cookieService = NULL; diff --git a/mozilla/layout/xul/base/src/nsMenuFrame.cpp b/mozilla/layout/xul/base/src/nsMenuFrame.cpp index 6404790594b..dd6590aa2c1 100644 --- a/mozilla/layout/xul/base/src/nsMenuFrame.cpp +++ b/mozilla/layout/xul/base/src/nsMenuFrame.cpp @@ -43,7 +43,7 @@ #define NS_MENU_POPUP_LIST_INDEX (NS_AREA_FRAME_ABSOLUTE_LIST_INDEX + 1) -static gEatMouseMove = PR_FALSE; +static PRInt32 gEatMouseMove = PR_FALSE; // // NS_NewMenuFrame diff --git a/mozilla/mailnews/base/search/src/nsMsgLocalSearch.cpp b/mozilla/mailnews/base/search/src/nsMsgLocalSearch.cpp index 3a01cde1e50..3e3b53331e3 100644 --- a/mozilla/mailnews/base/search/src/nsMsgLocalSearch.cpp +++ b/mozilla/mailnews/base/search/src/nsMsgLocalSearch.cpp @@ -700,7 +700,7 @@ nsresult nsMsgSearchOfflineMail::AddResultElement (nsIMsgDBHdr *pHeaders) // Don't even bother to look at expunged messages awaiting compression pHeaders->GetFlags(&msgFlags); pValue->attribute = nsMsgSearchAttrib::Subject; - char *reString = (msgFlags & MSG_FLAG_HAS_RE) ? "Re: " : ""; + char *reString = (msgFlags & MSG_FLAG_HAS_RE) ? (char *)"Re: " : (char *)""; pHeaders->GetSubject(&subject); pValue->u.string = PR_smprintf ("%s%s", reString, (const char*) nsAutoCString(subject)); // hack. invoke cast operator by force newResult->AddValue (pValue); diff --git a/mozilla/mailnews/base/src/nsMessenger.cpp b/mozilla/mailnews/base/src/nsMessenger.cpp index 4d76d42bcf0..baf193b7afa 100644 --- a/mozilla/mailnews/base/src/nsMessenger.cpp +++ b/mozilla/mailnews/base/src/nsMessenger.cpp @@ -644,7 +644,7 @@ nsMessenger::CopyMessages(nsIRDFCompositeDataSource *database, nsIDOMXULElement folderArray->AppendElement(dstResource); - rv = DoCommand(database, isMove ? NC_RDF_MOVE : NC_RDF_COPY, folderArray, argumentArray); + rv = DoCommand(database, isMove ? (char *)NC_RDF_MOVE : (char *)NC_RDF_COPY, folderArray, argumentArray); return rv; #else diff --git a/mozilla/mailnews/compose/src/nsMsgCompose.cpp b/mozilla/mailnews/compose/src/nsMsgCompose.cpp index f5fd9949620..886725c2b01 100644 --- a/mozilla/mailnews/compose/src/nsMsgCompose.cpp +++ b/mozilla/mailnews/compose/src/nsMsgCompose.cpp @@ -794,7 +794,7 @@ NS_IMETHODIMP QuotingOutputStreamListener::OnStopRequest(nsIChannel * /* aChanne PRBool compHTML = PR_FALSE; mComposeObj->GetComposeHTML(&compHTML); - mComposeObj->mTempComposeFileSpec = nsMsgCreateTempFileSpec(compHTML ? "nscomp.html" : "nscomp.txt"); + mComposeObj->mTempComposeFileSpec = nsMsgCreateTempFileSpec(compHTML ? (char *)"nscomp.html" : (char *)"nscomp.txt"); if (!mComposeObj->mTempComposeFileSpec) return NS_MSG_ERROR_WRITING_FILE; @@ -1500,7 +1500,7 @@ nsMsgCompose::ProcessSignature(nsOutputFileStream *aAppendFileStream) } else // Have to write data to a temp file then load the URL... { - mSigFileSpec = nsMsgCreateTempFileSpec(m_composeHTML ? "sig.html" : "sig.txt"); + mSigFileSpec = nsMsgCreateTempFileSpec(m_composeHTML ? (char *)"sig.html" : (char *)"sig.txt"); if (!mSigFileSpec) return NS_ERROR_FAILURE; @@ -1566,7 +1566,7 @@ nsMsgCompose::BuildBodyMessage() // Since we have a body in the comp fields, we need to create a // body of this old body... // - mTempComposeFileSpec = nsMsgCreateTempFileSpec(m_composeHTML ? "nscomp.html" : "nscomp.txt"); + mTempComposeFileSpec = nsMsgCreateTempFileSpec(m_composeHTML ? (char *)"nscomp.html" : (char *)"nscomp.txt"); if (!mTempComposeFileSpec) return NS_MSG_ERROR_WRITING_FILE; diff --git a/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp b/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp index 0f22e327df4..25b45ac6209 100644 --- a/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp +++ b/mozilla/rdf/content/src/nsRDFGenericBuilder.cpp @@ -1830,7 +1830,7 @@ RDFGenericBuilderImpl::BuildContentFromTemplate(nsIContent *aTemplateNode, if (NS_FAILED(rv)) return rv; // test to see if the container has contents - char* isEmpty = IsEmpty(realKid, aChild) ? "true" : "false"; + char* isEmpty = IsEmpty(realKid, aChild) ? (char *)"true" : (char *)"false"; rv = realKid->SetAttribute(kNameSpaceID_None, kEmptyAtom, isEmpty, PR_FALSE); if (NS_FAILED(rv)) return rv; } diff --git a/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp b/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp index 0f22e327df4..25b45ac6209 100644 --- a/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp +++ b/mozilla/rdf/content/src/nsXULTemplateBuilder.cpp @@ -1830,7 +1830,7 @@ RDFGenericBuilderImpl::BuildContentFromTemplate(nsIContent *aTemplateNode, if (NS_FAILED(rv)) return rv; // test to see if the container has contents - char* isEmpty = IsEmpty(realKid, aChild) ? "true" : "false"; + char* isEmpty = IsEmpty(realKid, aChild) ? (char *)"true" : (char *)"false"; rv = realKid->SetAttribute(kNameSpaceID_None, kEmptyAtom, isEmpty, PR_FALSE); if (NS_FAILED(rv)) return rv; } diff --git a/mozilla/xpcom/base/nsIPtr.h b/mozilla/xpcom/base/nsIPtr.h index c2fa8f18d82..3c3dbb46bf8 100644 --- a/mozilla/xpcom/base/nsIPtr.h +++ b/mozilla/xpcom/base/nsIPtr.h @@ -76,7 +76,7 @@ * */ -#define NS_DEF_PTR(cls) \ +#define NS_DEF_PTR1(cls) \ class cls##Ptr { \ public: \ cls##Ptr(void) : mPtr(0) {} \ @@ -126,11 +126,23 @@ public: \ operator cls*(void) { return mPtr; } \ const cls* operator->(void) const { return mPtr; } \ const cls& operator*(void) const { return *mPtr; } \ - operator const cls* (void) const { return mPtr; } \ + operator const cls* (void) const { return mPtr; } + +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) +#define NS_DEF_PTR2(cls) \ +private: \ + void* operator new(size_t size) {} \ + void operator delete(void* aPtr) {} \ + cls* mPtr; +#else +#define NS_DEF_PTR2(cls) \ private: \ void* operator new(size_t size) { return 0; } \ void operator delete(void* aPtr) {} \ - cls* mPtr; \ + cls* mPtr; +#endif /* gcc 2.95 */ + +#define NS_DEF_PTR3(cls) \ public: \ friend inline PRBool operator==(const cls* aInterface, const cls##Ptr& aPtr) \ { return PRBool(aInterface == aPtr.mPtr); } \ @@ -138,5 +150,11 @@ friend inline PRBool operator!=(const cls* aInterface, const cls##Ptr& aPtr) \ { return PRBool(aInterface != aPtr.mPtr); } \ } +#define NS_DEF_PTR(cls) \ + NS_DEF_PTR1(cls) \ + NS_DEF_PTR2(cls) \ + NS_DEF_PTR3(cls) + + #endif // nsIPtr_h___ diff --git a/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp b/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp index 6c8fe5e53ce..6e8a041a52b 100644 --- a/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp +++ b/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp @@ -109,7 +109,7 @@ nsresult nsXPTCStubBase::Stub##n() \ "call *%%edx" /* PrepareAndDispatch */ \ : "=a" (result) /* %0 */ \ : "d" (method) /* %1 */ \ - : "ax", "dx", "cx", "memory" ); \ + : "cx", "memory" ); \ return result; \ } diff --git a/mozilla/xpcom/threads/nsAutoLock.h b/mozilla/xpcom/threads/nsAutoLock.h index 4cf02e2b40c..132acefa209 100644 --- a/mozilla/xpcom/threads/nsAutoLock.h +++ b/mozilla/xpcom/threads/nsAutoLock.h @@ -92,7 +92,9 @@ private: // Not meant to be implemented. This makes it a compiler error to // attempt to create an nsAutoLock object on the heap. static void* operator new(size_t /*size*/) { +#if !(__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) return nsnull; +#endif } static void operator delete(void* /*memory*/) {} @@ -172,7 +174,9 @@ private: // Not meant to be implemented. This makes it a compiler error to // attempt to create an nsAutoLock object on the heap. static void* operator new(size_t /*size*/) { +#if !(__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) return nsnull; +#endif } static void operator delete(void* /*memory*/) {} }; @@ -229,7 +233,9 @@ private: // Not meant to be implemented. This makes it a compiler error to // attempt to create an nsAutoLock object on the heap. static void* operator new(size_t /*size*/) { +#if !(__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) return nsnull; +#endif } static void operator delete(void* /*memory*/) {} };