Bug 950323 - Fix a crash in XPCWrappedNative::CallMethod for whole-program optimizations on MSVC; r=bsmedberg

This commit is contained in:
Ehsan Akhgari 2014-06-30 14:08:24 -04:00
Родитель 8e216da53f
Коммит 9b9f9b8e73
2 изменённых файлов: 3 добавлений и 0 удалений

Просмотреть файл

@ -33,6 +33,7 @@ else:
'xptcinvoke.cpp',
'xptcstubs.cpp',
]
SOURCES['xptcinvoke.cpp'].no_pgo = True
FINAL_LIBRARY = 'xpcom_core'

Просмотреть файл

@ -69,12 +69,14 @@ noparams:
mov eax,methodIndex
call dword ptr[edx+eax*4] // stdcall, i.e. callee cleans up stack.
mov esp,ebp
#ifdef __clang__
// clang-cl doesn't emit the pop and ret instructions because it doesn't realize
// that the call instruction sets a return value in eax. See
// https://bugzilla.mozilla.org/show_bug.cgi?id=1028613 and
// http://llvm.org/bugs/show_bug.cgi?id=17201.
pop ebp
ret
#endif
}
}
#pragma warning(default : 4035) // restore default