diff --git a/widget/src/windows/nsWindow.cpp b/widget/src/windows/nsWindow.cpp index 11445530d62..94384b18a97 100644 --- a/widget/src/windows/nsWindow.cpp +++ b/widget/src/windows/nsWindow.cpp @@ -527,16 +527,14 @@ nsWindow::Create(nsIWidget *aParent, nsIToolkit *aToolkit, nsWidgetInitData *aInitData) { - nsWidgetInitData defaultInitData; - if (!aInitData) - aInitData = &defaultInitData; + if (aInitData) + mUnicodeWidget = aInitData->mUnicode; - mUnicodeWidget = aInitData->mUnicode; - - nsIWidget *baseParent = aInitData->mWindowType == eWindowType_dialog || + nsIWidget *baseParent = aInitData && + (aInitData->mWindowType == eWindowType_dialog || aInitData->mWindowType == eWindowType_toplevel || - aInitData->mWindowType == eWindowType_invisible ? - nsnull : aParent; + aInitData->mWindowType == eWindowType_invisible) ? + nsnull : aParent; mIsTopWidgetWindow = (nsnull == baseParent); mBounds.width = aRect.width; @@ -554,8 +552,11 @@ nsWindow::Create(nsIWidget *aParent, mParent = aNativeParent ? GetNSWindowPtr((HWND)aNativeParent) : nsnull; } - mPopupType = aInitData->mPopupHint; - mContentType = aInitData->mContentType; + if (nsnull != aInitData) { + mPopupType = aInitData->mPopupHint; + } + + mContentType = aInitData ? aInitData->mContentType : eContentTypeInherit; DWORD style = WindowStyle(); DWORD extendedStyle = WindowExStyle(); @@ -570,7 +571,7 @@ nsWindow::Create(nsIWidget *aParent, } else if (mWindowType == eWindowType_invisible) { // Make sure CreateWindowEx succeeds at creating a toplevel window style &= ~0x40000000; // WS_CHILDWINDOW - } else { + } else if (nsnull != aInitData) { // See if the caller wants to explictly set clip children and clip siblings if (aInitData->clipChildren) { style |= WS_CLIPCHILDREN; @@ -583,7 +584,7 @@ nsWindow::Create(nsIWidget *aParent, } mWnd = ::CreateWindowExW(extendedStyle, - aInitData->mDropShadow ? + aInitData && aInitData->mDropShadow ? WindowPopupClass() : WindowClass(), L"", style,