mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
bug 582644 test fix followup; r= blocking-fennec=2.0a1+
--HG-- extra : rebase_source : c83b18c96bda0a979455bc785612202f1b5af381
This commit is contained in:
parent
e63a0e70a7
commit
5c10b41876
@ -54,6 +54,7 @@
|
|||||||
#include "mozilla/ipc/DocumentRendererChild.h"
|
#include "mozilla/ipc/DocumentRendererChild.h"
|
||||||
#include "mozilla/ipc/DocumentRendererShmemChild.h"
|
#include "mozilla/ipc/DocumentRendererShmemChild.h"
|
||||||
#include "mozilla/ipc/DocumentRendererNativeIDChild.h"
|
#include "mozilla/ipc/DocumentRendererNativeIDChild.h"
|
||||||
|
#include "mozilla/widget/nsGUIEventIPC.h"
|
||||||
#include "nsIInterfaceRequestorUtils.h"
|
#include "nsIInterfaceRequestorUtils.h"
|
||||||
#include "nsPIDOMWindow.h"
|
#include "nsPIDOMWindow.h"
|
||||||
#include "nsIDOMWindowUtils.h"
|
#include "nsIDOMWindowUtils.h"
|
||||||
@ -735,6 +736,7 @@ TabChild::RecvTextEvent(const nsTextEvent& event)
|
|||||||
{
|
{
|
||||||
nsTextEvent localEvent(event);
|
nsTextEvent localEvent(event);
|
||||||
DispatchWidgetEvent(localEvent);
|
DispatchWidgetEvent(localEvent);
|
||||||
|
IPC::ParamTraits<nsTextEvent>::Free(event);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1054,36 +1054,14 @@ private:
|
|||||||
friend class mozilla::dom::PBrowserChild;
|
friend class mozilla::dom::PBrowserChild;
|
||||||
|
|
||||||
nsTextEvent()
|
nsTextEvent()
|
||||||
: mOwnRangeArray(PR_FALSE), rangeArray(nsnull)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PRPackedBool mOwnRangeArray;
|
|
||||||
|
|
||||||
public:
|
|
||||||
~nsTextEvent()
|
|
||||||
{
|
|
||||||
if (mOwnRangeArray && rangeArray)
|
|
||||||
delete [] rangeArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsTextRangeArray AllocRangeArray(PRUint32 aCount)
|
|
||||||
{
|
|
||||||
NS_ASSERTION(!rangeArray, "rangeArray already allocated");
|
|
||||||
mOwnRangeArray = PR_TRUE;
|
|
||||||
rangeCount = aCount;
|
|
||||||
rangeArray = new nsTextRange[aCount];
|
|
||||||
return rangeArray;
|
|
||||||
}
|
|
||||||
#endif // MOZ_IPC
|
#endif // MOZ_IPC
|
||||||
|
|
||||||
public:
|
public:
|
||||||
nsTextEvent(PRBool isTrusted, PRUint32 msg, nsIWidget *w)
|
nsTextEvent(PRBool isTrusted, PRUint32 msg, nsIWidget *w)
|
||||||
: nsInputEvent(isTrusted, msg, w, NS_TEXT_EVENT),
|
: nsInputEvent(isTrusted, msg, w, NS_TEXT_EVENT),
|
||||||
rangeCount(0), rangeArray(nsnull), isChar(PR_FALSE)
|
rangeCount(0), rangeArray(nsnull), isChar(PR_FALSE)
|
||||||
#ifdef MOZ_IPC
|
|
||||||
, mOwnRangeArray(PR_FALSE)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,17 +179,28 @@ struct ParamTraits<nsTextEvent>
|
|||||||
!ReadParam(aMsg, aIter, &aResult->rangeCount))
|
!ReadParam(aMsg, aIter, &aResult->rangeCount))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!aResult->rangeCount)
|
if (!aResult->rangeCount) {
|
||||||
|
aResult->rangeArray = nsnull;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!aResult->AllocRangeArray(aResult->rangeCount))
|
aResult->rangeArray = new nsTextRange[aResult->rangeCount];
|
||||||
|
if (!aResult->rangeArray)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (PRUint32 index = 0; index < aResult->rangeCount; index++)
|
for (PRUint32 index = 0; index < aResult->rangeCount; index++)
|
||||||
if (!ReadParam(aMsg, aIter, &aResult->rangeArray[index]))
|
if (!ReadParam(aMsg, aIter, &aResult->rangeArray[index])) {
|
||||||
|
Free(*aResult);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Free(const paramType& aResult)
|
||||||
|
{
|
||||||
|
if (aResult.rangeArray)
|
||||||
|
delete [] aResult.rangeArray;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
|
Loading…
Reference in New Issue
Block a user