From f58a88128befeeee1d6d48063be8c8a40e82021b Mon Sep 17 00:00:00 2001 From: "L. David Baron" Date: Tue, 29 Mar 2011 08:43:26 -0700 Subject: [PATCH] Add assertions that fire when callers using nsAutoLock or nsAutoMonitor use PR_NewLock or PR_NewMonitor directly. (Bug 594666) r=cjones --- xpcom/glue/nsAutoLock.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xpcom/glue/nsAutoLock.cpp b/xpcom/glue/nsAutoLock.cpp index a32ccb29a9a4..c4fbf60be0a0 100644 --- a/xpcom/glue/nsAutoLock.cpp +++ b/xpcom/glue/nsAutoLock.cpp @@ -237,6 +237,10 @@ static PRBool WellOrdered(const void* addr1, const void* addr2, if (vec1) { PRUint32 i, n; + NS_ASSERTION(vec1->mName, + "caller should have used nsAutoLock::NewLock " + "or nsAutoMonitor::NewMonitor"); + for (i = 0, n = vec1->Count(); i < n; i++) if (vec1->ElementAt(i) == addr2) break; @@ -245,6 +249,9 @@ static PRBool WellOrdered(const void* addr1, const void* addr2, // Now check for (addr2 < addr1) and return false if so. nsNamedVector* vec2 = GetVector(table, addr2); if (vec2) { + NS_ASSERTION(vec2->mName, + "caller should have used nsAutoLock::NewLock " + "or nsAutoMonitor::NewMonitor"); for (i = 0, n = vec2->Count(); i < n; i++) { void* addri = vec2->ElementAt(i); PR_ASSERT(addri);