зеркало из https://github.com/mozilla/pjs.git
Make nsIWidget::GetToolkit not AddRef, and thus fix leaks at callers who assumed it didn't. b=386297 r+sr=roc
This commit is contained in:
Родитель
a29935ee62
Коммит
251e42dd15
|
@ -795,6 +795,8 @@ class nsIWidget : public nsISupports {
|
||||||
/**
|
/**
|
||||||
* Return the widget's toolkit
|
* Return the widget's toolkit
|
||||||
*
|
*
|
||||||
|
* An AddRef has NOT been done for the caller.
|
||||||
|
*
|
||||||
* @return the toolkit this widget was created in. See nsToolkit.
|
* @return the toolkit this widget was created in. See nsToolkit.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -2799,7 +2799,6 @@ bool nsWindowBeOS::QuitRequested( void )
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::CLOSEWINDOW)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::CLOSEWINDOW)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -2844,7 +2843,6 @@ void nsWindowBeOS::DispatchMessage(BMessage *msg, BHandler *handler)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::CLOSEWINDOW)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::CLOSEWINDOW)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2870,7 +2868,6 @@ void nsWindowBeOS::FrameMoved(BPoint origin)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONMOVE)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONMOVE)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2887,7 +2884,6 @@ void nsWindowBeOS::WindowActivated(bool active)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONACTIVATE, 2, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONACTIVATE, 2, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2905,7 +2901,6 @@ void nsWindowBeOS::WorkspacesChanged(uint32 oldworkspace, uint32 newworkspace)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONWORKSPACE, 2, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONWORKSPACE, 2, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2926,7 +2921,6 @@ void nsWindowBeOS::FrameResized(float width, float height)
|
||||||
if (t->CallMethodAsync(info))
|
if (t->CallMethodAsync(info))
|
||||||
fJustGotBounds = false;
|
fJustGotBounds = false;
|
||||||
}
|
}
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2987,7 +2981,6 @@ void nsViewBeOS::Draw(BRect updateRect)
|
||||||
if (t->CallMethodAsync(info))
|
if (t->CallMethodAsync(info))
|
||||||
fJustValidated = false;
|
fJustValidated = false;
|
||||||
}
|
}
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3059,7 +3052,6 @@ void nsViewBeOS::MouseDown(BPoint point)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::BTNCLICK, 6, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::BTNCLICK, 6, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsViewBeOS::MouseMoved(BPoint point, uint32 transit, const BMessage *msg)
|
void nsViewBeOS::MouseMoved(BPoint point, uint32 transit, const BMessage *msg)
|
||||||
|
@ -3078,7 +3070,7 @@ void nsViewBeOS::MouseMoved(BPoint point, uint32 transit, const BMessage *msg)
|
||||||
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
||||||
if (w == NULL)
|
if (w == NULL)
|
||||||
return;
|
return;
|
||||||
nsToolkit *t = t = w->GetToolkit();
|
nsToolkit *t = w->GetToolkit();
|
||||||
if (t == NULL)
|
if (t == NULL)
|
||||||
return;
|
return;
|
||||||
uint32 args[4];
|
uint32 args[4];
|
||||||
|
@ -3121,7 +3113,6 @@ void nsViewBeOS::MouseMoved(BPoint point, uint32 transit, const BMessage *msg)
|
||||||
MethodInfo *moveInfo = nsnull;
|
MethodInfo *moveInfo = nsnull;
|
||||||
if (nsnull != (moveInfo = new MethodInfo(w, w, nsSwitchToUIThread::ONMOUSE, 4, args)))
|
if (nsnull != (moveInfo = new MethodInfo(w, w, nsSwitchToUIThread::ONMOUSE, 4, args)))
|
||||||
t->CallMethodAsync(moveInfo);
|
t->CallMethodAsync(moveInfo);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsViewBeOS::MouseUp(BPoint point)
|
void nsViewBeOS::MouseUp(BPoint point)
|
||||||
|
@ -3143,7 +3134,7 @@ void nsViewBeOS::MouseUp(BPoint point)
|
||||||
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
||||||
if (w == NULL)
|
if (w == NULL)
|
||||||
return;
|
return;
|
||||||
nsToolkit *t = t = w->GetToolkit();
|
nsToolkit *t = w->GetToolkit();
|
||||||
if (t == NULL)
|
if (t == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -3158,7 +3149,6 @@ void nsViewBeOS::MouseUp(BPoint point)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::BTNCLICK, 6, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::BTNCLICK, 6, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void nsViewBeOS::MessageReceived(BMessage *msg)
|
void nsViewBeOS::MessageReceived(BMessage *msg)
|
||||||
|
@ -3168,7 +3158,7 @@ void nsViewBeOS::MessageReceived(BMessage *msg)
|
||||||
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
nsWindow *w = (nsWindow *)GetMozillaWidget();
|
||||||
if (w == NULL)
|
if (w == NULL)
|
||||||
return;
|
return;
|
||||||
nsToolkit *t = t = w->GetToolkit();
|
nsToolkit *t = w->GetToolkit();
|
||||||
if (t == NULL)
|
if (t == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -3238,7 +3228,6 @@ void nsViewBeOS::MessageReceived(BMessage *msg)
|
||||||
fWheelDispatched = false;
|
fWheelDispatched = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3285,7 +3274,6 @@ void nsViewBeOS::KeyDown(const char *bytes, int32 numBytes)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONKEY, 6, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONKEY, 6, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3319,7 +3307,6 @@ void nsViewBeOS::KeyUp(const char *bytes, int32 numBytes)
|
||||||
MethodInfo *info = nsnull;
|
MethodInfo *info = nsnull;
|
||||||
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONKEY, 6, args)))
|
if (nsnull != (info = new MethodInfo(w, w, nsSwitchToUIThread::ONKEY, 6, args)))
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3346,7 +3333,6 @@ void nsViewBeOS::MakeFocus(bool focused)
|
||||||
t->CallMethodAsync(info);
|
t->CallMethodAsync(info);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
NS_RELEASE(t);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -367,7 +367,7 @@ nsresult nsMacWindow::StandardCreate(nsIWidget *aParent,
|
||||||
// when we show it.
|
// when we show it.
|
||||||
mOffsetParent = aParent;
|
mOffsetParent = aParent;
|
||||||
if( aParent )
|
if( aParent )
|
||||||
theToolkit = getter_AddRefs(aParent->GetToolkit());
|
theToolkit = aParent->GetToolkit();
|
||||||
|
|
||||||
mAcceptsActivation = PR_FALSE;
|
mAcceptsActivation = PR_FALSE;
|
||||||
|
|
||||||
|
|
|
@ -868,7 +868,10 @@ void nsWindow::DoCreate( HWND hwndP, nsWindow *aParent,
|
||||||
NS_ADDREF(mToolkit);
|
NS_ADDREF(mToolkit);
|
||||||
}
|
}
|
||||||
else if( aParent)
|
else if( aParent)
|
||||||
|
{
|
||||||
mToolkit = aParent->GetToolkit();
|
mToolkit = aParent->GetToolkit();
|
||||||
|
NS_IF_ADDREF(mToolkit);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// it's some top level window with no toolkit passed in.
|
// it's some top level window with no toolkit passed in.
|
||||||
|
|
|
@ -144,7 +144,8 @@ void nsBaseWidget::BaseCreate(nsIWidget *aParent,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (nsnull != aParent) {
|
if (nsnull != aParent) {
|
||||||
mToolkit = (nsIToolkit*)(aParent->GetToolkit()); // the call AddRef's, we don't have to
|
mToolkit = aParent->GetToolkit();
|
||||||
|
NS_IF_ADDREF(mToolkit);
|
||||||
}
|
}
|
||||||
// it's some top level window with no toolkit passed in.
|
// it's some top level window with no toolkit passed in.
|
||||||
// Create a default toolkit with the current thread
|
// Create a default toolkit with the current thread
|
||||||
|
@ -641,7 +642,6 @@ nsIRenderingContext* nsBaseWidget::GetRenderingContext()
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
nsIToolkit* nsBaseWidget::GetToolkit()
|
nsIToolkit* nsBaseWidget::GetToolkit()
|
||||||
{
|
{
|
||||||
NS_IF_ADDREF(mToolkit);
|
|
||||||
return mToolkit;
|
return mToolkit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче