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/DocumentRendererShmemChild.h"
|
||||
#include "mozilla/ipc/DocumentRendererNativeIDChild.h"
|
||||
#include "mozilla/widget/nsGUIEventIPC.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
#include "nsIDOMWindowUtils.h"
|
||||
@ -735,6 +736,7 @@ TabChild::RecvTextEvent(const nsTextEvent& event)
|
||||
{
|
||||
nsTextEvent localEvent(event);
|
||||
DispatchWidgetEvent(localEvent);
|
||||
IPC::ParamTraits<nsTextEvent>::Free(event);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1054,36 +1054,14 @@ private:
|
||||
friend class mozilla::dom::PBrowserChild;
|
||||
|
||||
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
|
||||
|
||||
public:
|
||||
nsTextEvent(PRBool isTrusted, PRUint32 msg, nsIWidget *w)
|
||||
: nsInputEvent(isTrusted, msg, w, NS_TEXT_EVENT),
|
||||
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))
|
||||
return false;
|
||||
|
||||
if (!aResult->rangeCount)
|
||||
if (!aResult->rangeCount) {
|
||||
aResult->rangeArray = nsnull;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!aResult->AllocRangeArray(aResult->rangeCount))
|
||||
aResult->rangeArray = new nsTextRange[aResult->rangeCount];
|
||||
if (!aResult->rangeArray)
|
||||
return false;
|
||||
|
||||
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 true;
|
||||
}
|
||||
|
||||
static void Free(const paramType& aResult)
|
||||
{
|
||||
if (aResult.rangeArray)
|
||||
delete [] aResult.rangeArray;
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
|
Loading…
Reference in New Issue
Block a user