rv = ds->GetSource(property, target, tv, source);
rv = mDataSources[i]->GetSource(property, target, tv, source);
CompositeDataSourceImpl::GetSource(nsIRDFResource* property,                                   nsIRDFNode* target,                                   PRBool tv,                                   nsIRDFResource** source){	if ((mAllowNegativeAssertions == PR_FALSE) && (tv == PR_FALSE))		return(NS_RDF_NO_VALUE);    PRInt32 count = mDataSources.Count();    for (PRInt32 i = 0; i < count; ++i) {        nsIRDFDataSource* ds = NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]);        nsresult rv;        rv = ds->GetSource(property, target, tv, source);        if (NS_FAILED(rv)) return rv;        if (rv == NS_RDF_NO_VALUE)            continue;	if (mAllowNegativeAssertions == PR_FALSE)	return(NS_OK);        // okay, found it. make sure we don't have the opposite        // asserted in a more local data source        if (!HasAssertionN(count-1, *source, property, target, !tv))             return NS_OK;        NS_RELEASE(*source);        return NS_RDF_NO_VALUE;    }    return NS_RDF_NO_VALUE;}