nsresult rv;    nsCOMPtr<nsISupportsArray> temp; rv = NS_NewISupportsArray(getter_AddRefs(temp)); if (NS_FAILED(rv)) return rv;  for (PRInt32 i = 0; i < mDataSources.Count(); ++i) temp->AppendElement(NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]));  return NS_NewArrayEnumerator(_result, temp);
return NS_NewArrayEnumerator(_result, mDataSources);
CompositeDataSourceImpl::GetDataSources(nsISimpleEnumerator** _result){    nsresult rv;    // Create an nsISupportsArray, copy the datasources into it, then    // use that to create an array enumerator.    nsCOMPtr<nsISupportsArray> temp;    rv = NS_NewISupportsArray(getter_AddRefs(temp));    if (NS_FAILED(rv)) return rv;    for (PRInt32 i = 0; i < mDataSources.Count(); ++i)        temp->AppendElement(NS_STATIC_CAST(nsIRDFDataSource*, mDataSources[i]));    return NS_NewArrayEnumerator(_result, temp);}