else {    mdb_column col = 0; void* value = nsnull; PRInt32 len = 0;   if (aProperty == kNC_Date || aProperty == kNC_FirstVisitDate) { nsCOMPtr<nsIRDFDate> date = do_QueryInterface(aTarget); if (date) { PRInt64 n;  rv = date->GetValue(&n); if (NS_FAILED(rv)) return rv;  nsCAutoString valueStr; rv = PRInt64ToChars(n, valueStr); if (NS_FAILED(rv)) return rv;  value = (void *)valueStr.ToNewCString(); if (aProperty == kNC_Date) col = kToken_LastVisitDateColumn; else col = kToken_FirstVisitDateColumn; } }  else if (aProperty == kNC_VisitCount) { nsCOMPtr<nsIRDFInt> countLiteral = do_QueryInterface(aTarget); if (countLiteral) { PRInt32 intValue; rv = countLiteral->GetValue(&intValue); if (NS_FAILED(rv)) return rv;  nsAutoString valueStr; valueStr.AppendInt(intValue); value = valueStr.ToNewUnicode(); len = nsCRT::strlen((PRUnichar*)value); col = kToken_VisitCountColumn; }  }  else if (aProperty == kNC_Name) { nsCOMPtr<nsIRDFLiteral> name = do_QueryInterface(aTarget); if (name) { PRUnichar* p; rv = name->GetValue(&p); if (NS_FAILED(rv)) return rv;  len = nsCRT::strlen(p) * sizeof(PRUnichar); value = p;  col = kToken_NameColumn; } }   else if (aProperty == kNC_Hostname || aProperty == kNC_Referrer) { col = kToken_ReferrerColumn; nsCOMPtr<nsIRDFResource> referrer = do_QueryInterface(aTarget); if (referrer) { char* p; rv = referrer->GetValue(&p); if (NS_FAILED(rv)) return rv;  len = PL_strlen(p); value = p;  if (aProperty == kNC_Hostname) col = kToken_HostnameColumn; else if (aProperty == kNC_Referrer) col = kToken_ReferrerColumn; } }  if (col) {  URLEnumerator* result = new URLEnumerator(kToken_URLColumn, col, value, len); if (! result) return NS_ERROR_OUT_OF_MEMORY;  rv = result->Init(mEnv, mTable); if (NS_FAILED(rv)) return rv;  *aSources = result; NS_ADDREF(*aSources); return NS_OK; } }  return NS_NewEmptyEnumerator(aSources); }
  NS_IMETHOD GetSources(nsIRDFResource* aProperty,                        nsIRDFNode* aTarget,                        PRBool aTruthValue,                        nsISimpleEnumerator** aSources) {    return mInner->GetSources(aProperty, aTarget, aTruthValue, aSources);  }