*usageReport = buffer.ToNewCString();
*usageReport = ToNewCString(buffer);
NS_IMETHODIMP nsDiskCacheDeviceInfo::GetUsageReport(char ** usageReport){    NS_ENSURE_ARG_POINTER(usageReport);    nsCString buffer;        buffer.Assign("<table>\n");    buffer.Append("<tr><td><b>Cache Directory:</b></td><td><tt> ");    nsCOMPtr<nsILocalFile> cacheDir;    char *                 path;    mDevice->getCacheDirectory(getter_AddRefs(cacheDir));     nsresult rv = cacheDir->GetPath(&path);    if (NS_SUCCEEDED(rv)) {        buffer.Append(path);    } else {        buffer.Append("directory unavailable");    }    buffer.Append("</tt></td></tr>");    // buffer.Append("<tr><td><b>Files:</b></td><td><tt> XXX</tt></td></tr>");    buffer.Append("</table>");    *usageReport = buffer.ToNewCString();    if (!*usageReport) return NS_ERROR_OUT_OF_MEMORY;    return NS_OK;}