Fix for several XBL event regressions, trashing memory and crashers, sr=brendan,ben, a=brendan

git-svn-id: svn://10.0.0.236/trunk@79612 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
hyatt%netscape.com
2000-09-20 07:21:35 +00:00
parent d6390acc47
commit c8178f446e
2 changed files with 6 additions and 6 deletions

View File

@@ -689,7 +689,9 @@ nsXBLBinding::InstallEventHandlers(nsIContent* aBoundElement, nsIXBLBinding** aB
nsXBLEventHandler* handler = nsnull;
// Add the event listener.
if (iid.Equals(NS_GET_IID(nsIDOMMouseListener))) {
if (special)
NS_NewXBLEventHandler(receiver, curr, eventAtom, &handler);
else if (iid.Equals(NS_GET_IID(nsIDOMMouseListener))) {
nsXBLMouseHandler* mouseHandler;
NS_NewXBLMouseHandler(receiver, curr, eventAtom, &mouseHandler);
receiver->AddEventListener(type, (nsIDOMMouseListener*)mouseHandler, useCapture);
@@ -743,8 +745,6 @@ nsXBLBinding::InstallEventHandlers(nsIContent* aBoundElement, nsIXBLBinding** aB
receiver->AddEventListener(type, (nsIDOMLoadListener*)loadHandler, useCapture);
handler = loadHandler;
}
else if (special)
NS_NewXBLEventHandler(receiver, curr, eventAtom, &handler);
else {
NS_WARNING("***** Non-compliant XBL event listener attached! *****");
nsAutoString value;

View File

@@ -689,7 +689,9 @@ nsXBLBinding::InstallEventHandlers(nsIContent* aBoundElement, nsIXBLBinding** aB
nsXBLEventHandler* handler = nsnull;
// Add the event listener.
if (iid.Equals(NS_GET_IID(nsIDOMMouseListener))) {
if (special)
NS_NewXBLEventHandler(receiver, curr, eventAtom, &handler);
else if (iid.Equals(NS_GET_IID(nsIDOMMouseListener))) {
nsXBLMouseHandler* mouseHandler;
NS_NewXBLMouseHandler(receiver, curr, eventAtom, &mouseHandler);
receiver->AddEventListener(type, (nsIDOMMouseListener*)mouseHandler, useCapture);
@@ -743,8 +745,6 @@ nsXBLBinding::InstallEventHandlers(nsIContent* aBoundElement, nsIXBLBinding** aB
receiver->AddEventListener(type, (nsIDOMLoadListener*)loadHandler, useCapture);
handler = loadHandler;
}
else if (special)
NS_NewXBLEventHandler(receiver, curr, eventAtom, &handler);
else {
NS_WARNING("***** Non-compliant XBL event listener attached! *****");
nsAutoString value;