PRUnichar *
foundToHost(GnomeKeyringFound* found)
{
  PRUnichar *host = NULL;

  GnomeKeyringAttribute *attrArray =
    (GnomeKeyringAttribute *)found->attributes->data;

  for (PRUint32 i = 0; i < found->attributes->len; i++) {

    if (attrArray[i].type != GNOME_KEYRING_ATTRIBUTE_TYPE_STRING)
      continue;

    const char *attrName = attrArray[i].name;
    const char *attrValue = attrArray[i].value.string;
    GK_LOG(("Attr value %s\n", attrValue));

    if (!strcmp(attrName, kDisabledHostAttrName))
      host = NS_StringCloneData(NS_ConvertUTF8toUTF16(attrValue));
  }

  // TODO what to do in that case?
  if (!host)
    host = NS_StringCloneData(NS_ConvertASCIItoUTF16("undefined"));

  return host;
}
Exemple #2
0
NS_IMETHODIMP KDEWallet::GetAllDisabledHosts(PRUint32 *aCount,
        PRUnichar ***aHostnames) {
    PR_LOG( gKDEWalletLog, PR_LOG_DEBUG, ( "KDEWallet::GetAllDisabledHosts() Called") );
    *aCount = 0;

    nsresult res = checkWallet();
    NS_ENSURE_SUCCESS(res, res);

    QMap< QString, QString > saveDisabledHostMap;
    wallet->readMap( kSaveDisabledHostsMapName, saveDisabledHostMap );

    if( saveDisabledHostMap.count() == 0 )
        return NS_OK;

    PRUnichar **array = (PRUnichar **) nsMemory::Alloc(saveDisabledHostMap.count() * sizeof(PRUnichar *));
    NS_ENSURE_TRUE(array, NS_ERROR_OUT_OF_MEMORY);
    memset(array, 0, saveDisabledHostMap.count() * sizeof(PRUnichar*));

    QMapIterator< QString, QString > iterator(saveDisabledHostMap);
    int i = 0;
    while (iterator.hasNext()) {
        iterator.next();
        PRUnichar *nsHostname = NS_StringCloneData( QtString2NSString(iterator.key()) );

        if (!nsHostname)
            return NS_ERROR_FAILURE;

        NS_ENSURE_STATE(nsHostname);
        array[i] = nsHostname;
        i++;
    }
    *aCount = i;
    *aHostnames = array;
    return NS_OK;
}
static bool test_basic_2()
  {
    nsStringContainer s;
    NS_StringContainerInit(s);

    const PRUnichar *ptr;
    uint32_t len;
    PRUnichar *clone;

    NS_StringGetData(s, &ptr);
    if (ptr == nullptr || *ptr != '\0')
      {
        NS_ERROR("unexpected result");
        return false;
      }

    NS_StringSetData(s, kUnicodeData, PR_UINT32_MAX);
    len = NS_StringGetData(s, &ptr);
    if (len != sizeof(kUnicodeData)/2 - 1)
      {
        NS_ERROR("unexpected result");
        return false;
      }
    if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0)
      {
        NS_ERROR("unexpected result");
        return false;
      }

    clone = NS_StringCloneData(s);
    if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0)
      {
        NS_ERROR("unexpected result");
        return false;
      }
    NS_Free(clone);

    nsStringContainer temp;
    NS_StringContainerInit(temp);
    NS_StringCopy(temp, s);

    len = NS_StringGetData(temp, &ptr);
    if (len != sizeof(kUnicodeData)/2 - 1)
      {
        NS_ERROR("unexpected result");
        return false;
      }
    if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0)
      {
        NS_ERROR("unexpected result");
        return false;
      }

    NS_StringContainerFinish(temp);

    NS_StringContainerFinish(s);

    return true;
  }
NS_IMETHODIMP
leakmonJSObjectInfo::GetStringRep(PRUnichar **aResult)
{
	PRUnichar *buf = NS_StringCloneData(mString);
	NS_ENSURE_TRUE(buf, NS_ERROR_OUT_OF_MEMORY);
	*aResult = buf;
	return NS_OK;
}
NS_IMETHODIMP
leakmonJSObjectInfo::GetPropertyNameAt(PRUint32 aIndex,
		                               PRUnichar **aResult)
{
	PRUnichar *buf =
		NS_StringCloneData(mProperties[PropertiesIndex(aIndex)].mName);
	NS_ENSURE_TRUE(buf, NS_ERROR_OUT_OF_MEMORY);
	*aResult = buf;
	return NS_OK;
}