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; }
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; }