зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1551647. Stop using [array] in nsIProperties. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D31110 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
cdb0ff84d7
Коммит
d24853373a
|
@ -1009,13 +1009,12 @@ RasterImage::Undefine(const char* prop) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
RasterImage::GetKeys(uint32_t* count, char*** keys) {
|
||||
RasterImage::GetKeys(nsTArray<nsCString>& keys) {
|
||||
if (!mProperties) {
|
||||
*count = 0;
|
||||
*keys = nullptr;
|
||||
keys.Clear();
|
||||
return NS_OK;
|
||||
}
|
||||
return mProperties->GetKeys(count, keys);
|
||||
return mProperties->GetKeys(keys);
|
||||
}
|
||||
|
||||
void RasterImage::Discard() {
|
||||
|
|
|
@ -42,5 +42,5 @@ interface nsIProperties : nsISupports
|
|||
/**
|
||||
* Returns an array of the keys.
|
||||
*/
|
||||
void getKeys(out uint32_t count, [array, size_is(count), retval] out string keys);
|
||||
Array<ACString> getKeys();
|
||||
};
|
||||
|
|
|
@ -543,7 +543,7 @@ nsPersistentProperties::Has(const char* aProp, bool* aResult) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPersistentProperties::GetKeys(uint32_t* aCount, char*** aKeys) {
|
||||
nsPersistentProperties::GetKeys(nsTArray<nsCString>& aKeys) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,32 +52,14 @@ nsProperties::Has(const char* prop, bool* result) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsProperties::GetKeys(uint32_t* aCount, char*** aKeys) {
|
||||
if (NS_WARN_IF(!aCount) || NS_WARN_IF(!aKeys)) {
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
}
|
||||
|
||||
nsProperties::GetKeys(nsTArray<nsCString>& aKeys) {
|
||||
uint32_t count = Count();
|
||||
char** keys = (char**)moz_xmalloc(count * sizeof(char*));
|
||||
uint32_t j = 0;
|
||||
aKeys.SetCapacity(count);
|
||||
|
||||
for (auto iter = this->Iter(); !iter.Done(); iter.Next()) {
|
||||
const char* key = iter.Key();
|
||||
keys[j] = strdup(key);
|
||||
|
||||
if (!keys[j]) {
|
||||
// Free 'em all
|
||||
for (uint32_t i = 0; i < j; i++) {
|
||||
free(keys[i]);
|
||||
}
|
||||
free(keys);
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
j++;
|
||||
aKeys.AppendElement(iter.Key());
|
||||
}
|
||||
|
||||
*aCount = count;
|
||||
*aKeys = keys;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ nsDirectoryService::Undefine(const char* aProp) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDirectoryService::GetKeys(uint32_t* aCount, char*** aKeys) {
|
||||
nsDirectoryService::GetKeys(nsTArray<nsCString>& aKeys) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче