mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-05-27 06:49:36 +00:00
Make HTMLOptionsCollection::mSelect into a strong reference.
The cycle collector makes weak references like this obsolete.
This commit is contained in:
@@ -35,23 +35,8 @@ namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
HTMLOptionsCollection::HTMLOptionsCollection(HTMLSelectElement* aSelect)
|
||||
{
|
||||
// Do not maintain a reference counted reference. When
|
||||
// the select goes away, it will let us know.
|
||||
mSelect = aSelect;
|
||||
}
|
||||
|
||||
HTMLOptionsCollection::~HTMLOptionsCollection()
|
||||
{
|
||||
DropReference();
|
||||
}
|
||||
|
||||
void
|
||||
HTMLOptionsCollection::DropReference()
|
||||
{
|
||||
// Drop our (non ref-counted) reference
|
||||
mSelect = nullptr;
|
||||
}
|
||||
: mSelect(aSelect)
|
||||
{}
|
||||
|
||||
nsresult
|
||||
HTMLOptionsCollection::GetOptionIndex(Element* aOption,
|
||||
@@ -88,7 +73,9 @@ HTMLOptionsCollection::GetOptionIndex(Element* aOption,
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(HTMLOptionsCollection, mElements)
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(HTMLOptionsCollection,
|
||||
mElements,
|
||||
mSelect)
|
||||
|
||||
// nsISupports
|
||||
|
||||
@@ -124,10 +111,6 @@ HTMLOptionsCollection::GetLength(uint32_t* aLength)
|
||||
NS_IMETHODIMP
|
||||
HTMLOptionsCollection::SetLength(uint32_t aLength)
|
||||
{
|
||||
if (!mSelect) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
return mSelect->SetLength(aLength);
|
||||
}
|
||||
|
||||
@@ -135,10 +118,6 @@ NS_IMETHODIMP
|
||||
HTMLOptionsCollection::SetOption(uint32_t aIndex,
|
||||
nsIDOMHTMLOptionElement* aOption)
|
||||
{
|
||||
if (!mSelect) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// if the new option is null, just remove this option. Note that it's safe
|
||||
// to pass a too-large aIndex in here.
|
||||
if (!aOption) {
|
||||
@@ -187,11 +166,6 @@ HTMLOptionsCollection::SetOption(uint32_t aIndex,
|
||||
int32_t
|
||||
HTMLOptionsCollection::GetSelectedIndex(ErrorResult& aError)
|
||||
{
|
||||
if (!mSelect) {
|
||||
aError.Throw(NS_ERROR_UNEXPECTED);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t selectedIndex;
|
||||
aError = mSelect->GetSelectedIndex(&selectedIndex);
|
||||
return selectedIndex;
|
||||
@@ -209,11 +183,6 @@ void
|
||||
HTMLOptionsCollection::SetSelectedIndex(int32_t aSelectedIndex,
|
||||
ErrorResult& aError)
|
||||
{
|
||||
if (!mSelect) {
|
||||
aError.Throw(NS_ERROR_UNEXPECTED);
|
||||
return;
|
||||
}
|
||||
|
||||
aError = mSelect->SetSelectedIndex(aSelectedIndex);
|
||||
}
|
||||
|
||||
@@ -339,22 +308,12 @@ HTMLOptionsCollection::Add(const HTMLOptionOrOptGroupElement& aElement,
|
||||
const Nullable<HTMLElementOrLong>& aBefore,
|
||||
ErrorResult& aError)
|
||||
{
|
||||
if (!mSelect) {
|
||||
aError.Throw(NS_ERROR_NOT_INITIALIZED);
|
||||
return;
|
||||
}
|
||||
|
||||
mSelect->Add(aElement, aBefore, aError);
|
||||
}
|
||||
|
||||
void
|
||||
HTMLOptionsCollection::Remove(int32_t aIndex, ErrorResult& aError)
|
||||
{
|
||||
if (!mSelect) {
|
||||
aError.Throw(NS_ERROR_UNEXPECTED);
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t len = 0;
|
||||
mSelect->GetLength(&len);
|
||||
if (aIndex < 0 || (uint32_t)aIndex >= len)
|
||||
|
||||
Reference in New Issue
Block a user