Bug 1289457 - Take advantage of infallible new in XPCNativeSet::NewInstance{,Mutate} to skip checks. r=mrbkap

MozReview-Commit-ID: H4TEMzzT6iK
This commit is contained in:
Andrew McCreight 2016-07-29 16:08:06 -07:00
Родитель dbb581c9f8
Коммит 82ac383602
1 изменённых файлов: 30 добавлений и 40 удалений

Просмотреть файл

@ -680,8 +680,6 @@ XPCNativeSet*
XPCNativeSet::NewInstance(XPCNativeInterface** array,
uint16_t count)
{
XPCNativeSet* obj = nullptr;
if (!array || !count)
return nullptr;
@ -707,10 +705,8 @@ XPCNativeSet::NewInstance(XPCNativeInterface** array,
if (slots > 1)
size += (slots - 1) * sizeof(XPCNativeInterface*);
void* place = new char[size];
if (place)
obj = new(place) XPCNativeSet();
XPCNativeSet* obj = new(place) XPCNativeSet();
if (obj) {
// Stick the nsISupports in front and skip additional nsISupport(s)
XPCNativeInterface** inp = array;
XPCNativeInterface** outp = (XPCNativeInterface**) &obj->mInterfaces;
@ -728,7 +724,6 @@ XPCNativeSet::NewInstance(XPCNativeInterface** array,
}
obj->mMemberCount = memberCount;
obj->mInterfaceCount = slots;
}
return obj;
}
@ -739,8 +734,6 @@ XPCNativeSet::NewInstanceMutate(XPCNativeSet* otherSet,
XPCNativeInterface* newInterface,
uint16_t position)
{
XPCNativeSet* obj = nullptr;
if (!newInterface)
return nullptr;
if (otherSet && position > otherSet->mInterfaceCount)
@ -752,10 +745,8 @@ XPCNativeSet::NewInstanceMutate(XPCNativeSet* otherSet,
if (otherSet)
size += otherSet->mInterfaceCount * sizeof(XPCNativeInterface*);
void* place = new char[size];
if (place)
obj = new(place) XPCNativeSet();
XPCNativeSet* obj = new(place) XPCNativeSet();
if (obj) {
if (otherSet) {
obj->mMemberCount = otherSet->GetMemberCount() +
newInterface->GetMemberCount();
@ -774,7 +765,6 @@ XPCNativeSet::NewInstanceMutate(XPCNativeSet* otherSet,
obj->mInterfaceCount = 1;
obj->mInterfaces[0] = newInterface;
}
}
return obj;
}