Bug 747870 - Properly align XPCLazyCallContext::mData. r=bholley

This commit is contained in:
Mike Hommey 2012-04-25 09:09:08 +02:00
parent 1e89bab7e7
commit 1d45c60f19

View File

@ -1310,12 +1310,13 @@ public:
XPCCallContext &GetXPCCallContext()
{
if (!mCcx) {
XPCCallContext *data = mData.addr();
mCcxToDestroy = mCcx =
new (mData) XPCCallContext(mCallerLanguage, mCx,
mCallBeginRequest == CALL_BEGINREQUEST,
mObj,
mFlattenedJSObject, mWrapper,
mTearOff);
new (data) XPCCallContext(mCallerLanguage, mCx,
mCallBeginRequest == CALL_BEGINREQUEST,
mObj,
mFlattenedJSObject, mWrapper,
mTearOff);
if (!mCcx->IsValid()) {
NS_ERROR("This is not supposed to fail!");
}
@ -1343,7 +1344,7 @@ private:
JSObject *mFlattenedJSObject;
XPCWrappedNative *mWrapper;
XPCWrappedNativeTearOff *mTearOff;
char mData[sizeof(XPCCallContext)];
mozilla::AlignedStorage2<XPCCallContext> mData;
};
/***************************************************************************