if (mAssertion && mAssertion->mHashEntry) {  mAssertion = nsnull;  nsresult rv = NS_NewISupportsArray(getter_AddRefs(mHashArcs)); if (NS_SUCCEEDED(rv)) { NS_AUTOLOCK(mLock);  PL_DHashTableEnumerate(mAssertion->u.hash.mPropertyHash, ArcEnumerator, mHashArcs.get()); } }
InMemoryArcsEnumeratorImpl::InMemoryArcsEnumeratorImpl(InMemoryDataSource* aDataSource,                                                       nsIRDFResource* aSource,                                                       nsIRDFNode* aTarget)    : mDataSource(aDataSource),      mSource(aSource),      mTarget(aTarget),      mCurrent(nsnull){    NS_INIT_REFCNT();    NS_ADDREF(mDataSource);    NS_IF_ADDREF(mSource);    NS_IF_ADDREF(mTarget);    if (mSource) {        // cast okay because it's a closed system        mAssertion = mDataSource->GetForwardArcs(mSource);    }    else {        mAssertion = mDataSource->GetReverseArcs(mTarget);    }}