Skip to content

Commit

Permalink
Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=v…
Browse files Browse the repository at this point in the history
…djeric
  • Loading branch information
bsmedberg committed Nov 19, 2013
1 parent d3cbd59 commit 8fd1bc7
Show file tree
Hide file tree
Showing 56 changed files with 777 additions and 440 deletions.
33 changes: 22 additions & 11 deletions xpcom/base/nsCycleCollector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1221,12 +1221,14 @@ class nsCycleCollectorLogger MOZ_FINAL : public nsICycleCollectorListener
// want scripts which poll the filesystem looking for gc/cc dumps to
// grab a file before we're finished writing to it.)
nsCOMPtr<nsIFile> gcLogFile = CreateTempFile("incomplete-gc-edges");
NS_ENSURE_STATE(gcLogFile);
if (NS_WARN_IF(!gcLogFile))
return NS_ERROR_UNEXPECTED;

// Dump the JS heap.
FILE* gcLogANSIFile = nullptr;
gcLogFile->OpenANSIFileDesc("w", &gcLogANSIFile);
NS_ENSURE_STATE(gcLogANSIFile);
if (NS_WARN_IF(!gcLogANSIFile))
return NS_ERROR_UNEXPECTED;
MozillaRegisterDebugFILE(gcLogANSIFile);
CollectorData *data = sCollectorData.get();
if (data && data->mRuntime)
Expand All @@ -1237,11 +1239,13 @@ class nsCycleCollectorLogger MOZ_FINAL : public nsICycleCollectorListener
// Strip off "incomplete-".
nsCOMPtr<nsIFile> gcLogFileFinalDestination =
CreateTempFile("gc-edges");
NS_ENSURE_STATE(gcLogFileFinalDestination);
if (NS_WARN_IF(!gcLogFileFinalDestination))
return NS_ERROR_UNEXPECTED;

nsAutoString gcLogFileFinalDestinationName;
gcLogFileFinalDestination->GetLeafName(gcLogFileFinalDestinationName);
NS_ENSURE_STATE(!gcLogFileFinalDestinationName.IsEmpty());
if (NS_WARN_IF(gcLogFileFinalDestinationName.IsEmpty()))
return NS_ERROR_UNEXPECTED;

gcLogFile->MoveTo(/* directory */ nullptr, gcLogFileFinalDestinationName);

Expand All @@ -1260,10 +1264,12 @@ class nsCycleCollectorLogger MOZ_FINAL : public nsICycleCollectorListener
// Open a file for dumping the CC graph. We again prefix with
// "incomplete-".
mOutFile = CreateTempFile("incomplete-cc-edges");
NS_ENSURE_STATE(mOutFile);
if (NS_WARN_IF(!mOutFile))
return NS_ERROR_UNEXPECTED;
MOZ_ASSERT(!mStream);
mOutFile->OpenANSIFileDesc("w", &mStream);
NS_ENSURE_STATE(mStream);
if (NS_WARN_IF(!mStream))
return NS_ERROR_UNEXPECTED;
MozillaRegisterDebugFILE(mStream);

fprintf(mStream, "# WantAllTraces=%s\n", mWantAllTraces ? "true" : "false");
Expand Down Expand Up @@ -1388,11 +1394,13 @@ class nsCycleCollectorLogger MOZ_FINAL : public nsICycleCollectorListener
// Strip off "incomplete-" from the log file's name.
nsCOMPtr<nsIFile> logFileFinalDestination =
CreateTempFile("cc-edges");
NS_ENSURE_STATE(logFileFinalDestination);
if (NS_WARN_IF(!logFileFinalDestination))
return NS_ERROR_UNEXPECTED;

nsAutoString logFileFinalDestinationName;
logFileFinalDestination->GetLeafName(logFileFinalDestinationName);
NS_ENSURE_STATE(!logFileFinalDestinationName.IsEmpty());
if (NS_WARN_IF(logFileFinalDestinationName.IsEmpty()))
return NS_ERROR_UNEXPECTED;

mOutFile->MoveTo(/* directory = */ nullptr,
logFileFinalDestinationName);
Expand All @@ -1415,7 +1423,8 @@ class nsCycleCollectorLogger MOZ_FINAL : public nsICycleCollectorListener
NS_IMETHOD ProcessNext(nsICycleCollectorHandler* aHandler,
bool* aCanContinue)
{
NS_ENSURE_STATE(aHandler && mWantAfterProcessing);
if (NS_WARN_IF(!aHandler) || NS_WARN_IF(!mWantAfterProcessing))
return NS_ERROR_UNEXPECTED;
CCGraphDescriber* d = mDescribers.popFirst();
if (d) {
switch (d->mType) {
Expand Down Expand Up @@ -1515,7 +1524,8 @@ nsCycleCollectorLoggerConstructor(nsISupports* aOuter,
const nsIID& aIID,
void* *aInstancePtr)
{
NS_ENSURE_TRUE(!aOuter, NS_ERROR_NO_AGGREGATION);
if (NS_WARN_IF(aOuter))
return NS_ERROR_NO_AGGREGATION;

nsISupports *logger = new nsCycleCollectorLogger();

Expand Down Expand Up @@ -2438,7 +2448,8 @@ class CycleCollectorReporter MOZ_FINAL : public MemoryMultiReporter
nsIMemoryReporter::KIND_HEAP, \
nsIMemoryReporter::UNITS_BYTES, _amount, \
NS_LITERAL_CSTRING(_desc), aClosure); \
NS_ENSURE_SUCCESS(rv, rv); \
if (NS_WARN_IF(NS_FAILED(rv))) \
return rv; \
} \
} while (0)

Expand Down
3 changes: 2 additions & 1 deletion xpcom/base/nsDebugImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,8 @@ static const nsDebugImpl kImpl;
nsresult
nsDebugImpl::Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr)
{
NS_ENSURE_NO_AGGREGATION(outer);
if (NS_WARN_IF(outer))
return NS_ERROR_NO_AGGREGATION;

return const_cast<nsDebugImpl*>(&kImpl)->
QueryInterface(aIID, aInstancePtr);
Expand Down
3 changes: 2 additions & 1 deletion xpcom/base/nsErrorService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ NS_IMPL_ISUPPORTS1(nsErrorService, nsIErrorService)
nsresult
nsErrorService::Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr)
{
NS_ENSURE_NO_AGGREGATION(outer);
if (NS_WARN_IF(outer))
return NS_ERROR_NO_AGGREGATION;
nsRefPtr<nsErrorService> serv = new nsErrorService();
return serv->QueryInterface(aIID, aInstancePtr);
}
Expand Down
25 changes: 16 additions & 9 deletions xpcom/base/nsGZFileWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,25 @@ nsGZFileWriter::~nsGZFileWriter()
NS_IMETHODIMP
nsGZFileWriter::Init(nsIFile* aFile)
{
NS_ENSURE_FALSE(mInitialized, NS_ERROR_FAILURE);
NS_ENSURE_FALSE(mFinished, NS_ERROR_FAILURE);
if (NS_WARN_IF(mInitialized) ||
NS_WARN_IF(mFinished))
return NS_ERROR_FAILURE;

// Get a FILE out of our nsIFile. Convert that into a file descriptor which
// gzip can own. Then close our FILE, leaving only gzip's fd open.

FILE* file;
nsresult rv = aFile->OpenANSIFileDesc("wb", &file);
NS_ENSURE_SUCCESS(rv, rv);
if (NS_WARN_IF(NS_FAILED(rv)))
return rv;

mGZFile = gzdopen(dup(fileno(file)), "wb");
fclose(file);

// gzdopen returns nullptr on error.
NS_ENSURE_TRUE(mGZFile, NS_ERROR_FAILURE);
if (NS_WARN_IF(!mGZFile))
return NS_ERROR_FAILURE;

mInitialized = true;

return NS_OK;
Expand All @@ -56,8 +60,9 @@ nsGZFileWriter::Init(nsIFile* aFile)
NS_IMETHODIMP
nsGZFileWriter::Write(const nsACString& aStr)
{
NS_ENSURE_TRUE(mInitialized, NS_ERROR_NOT_INITIALIZED);
NS_ENSURE_FALSE(mFinished, NS_ERROR_FAILURE);
if (NS_WARN_IF(!mInitialized) ||
NS_WARN_IF(mFinished))
return NS_ERROR_FAILURE;

// gzwrite uses a return value of 0 to indicate failure. Otherwise, it
// returns the number of uncompressed bytes written. To ensure we can
Expand All @@ -71,16 +76,18 @@ nsGZFileWriter::Write(const nsACString& aStr)
// always be either 0 or aStr.Length(), and we shouldn't have to call it
// multiple times in order to get it to read the whole buffer.
int rv = gzwrite(mGZFile, aStr.BeginReading(), aStr.Length());
NS_ENSURE_TRUE(rv == static_cast<int>(aStr.Length()), NS_ERROR_FAILURE);
if (NS_WARN_IF(rv != static_cast<int>(aStr.Length())))
return NS_ERROR_FAILURE;

return NS_OK;
}

NS_IMETHODIMP
nsGZFileWriter::Finish()
{
NS_ENSURE_TRUE(mInitialized, NS_ERROR_NOT_INITIALIZED);
NS_ENSURE_FALSE(mFinished, NS_ERROR_FAILURE);
if (NS_WARN_IF(!mInitialized) ||
NS_WARN_IF(mFinished))
return NS_ERROR_FAILURE;

mFinished = true;
gzclose(mGZFile);
Expand Down
3 changes: 2 additions & 1 deletion xpcom/base/nsIMemoryReporter.idl
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,8 @@ public:
{
int64_t amount;
nsresult rv = GetAmount(&amount);
NS_ENSURE_SUCCESS(rv, rv);
if (NS_WARN_IF(NS_FAILED(rv)))
return rv;

return aCallback->Callback(EmptyCString(), mNameAndPath, mKind, mUnits,
amount, mDescription, aData);
Expand Down
3 changes: 2 additions & 1 deletion xpcom/base/nsMacUtilsImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ nsresult nsMacUtilsImpl::GetArchString(nsAString& archString)

NS_IMETHODIMP nsMacUtilsImpl::GetIsUniversalBinary(bool *aIsUniversalBinary)
{
NS_ENSURE_ARG_POINTER(aIsUniversalBinary);
if (NS_WARN_IF(!aIsUniversalBinary))
return NS_ERROR_INVALID_ARG;
*aIsUniversalBinary = false;

nsAutoString archString;
Expand Down
3 changes: 2 additions & 1 deletion xpcom/base/nsMemoryImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ nsMemoryImpl::IsLowMemoryPlatform(bool *result)
/*static*/ nsresult
nsMemoryImpl::Create(nsISupports* outer, const nsIID& aIID, void **aResult)
{
NS_ENSURE_NO_AGGREGATION(outer);
if (NS_WARN_IF(outer))
return NS_ERROR_NO_AGGREGATION;
return sGlobalMemory.QueryInterface(aIID, aResult);
}

Expand Down
Loading

0 comments on commit 8fd1bc7

Please sign in to comment.