зеркало из https://github.com/mozilla/gecko-dev.git
ba7d805a62
DynamicIA2Data can be built to be transmitted in two different ways: 1. As part of the payload included in the stream when an accessible is marshaled; or 2. As an out parameter returned by IGeckoBackChannel::Refresh(). DynamicIA2Data includes arrays for row/column header ids. Normally, such arrays would be allocated by CoTaskMemAlloc and freed by CoTaskMemFree. However, in the first case, the struct is actually marshaled by RPC encoding functions, not by COM itself. This means we must use midl_user_allocate/free, lest we crash. We previously used midl_user_allocate/free for the second case as well. Unfortunately, it turns out that this too causes crashes. To fix this, we now use different memory allocation functions depending on how the struct is transmitted. This patch also cleans up the old DynamicIA2Data in the client before calling IGeckoBackChannel::Refresh. Previously, we didn't do this, which would have resulted in a leak. Differential Revision: https://phabricator.services.mozilla.com/D82823 |
||
---|---|---|
.. | ||
android | ||
aom | ||
atk | ||
base | ||
generic | ||
html | ||
interfaces | ||
ipc | ||
mac | ||
other | ||
tests | ||
windows | ||
xpcom | ||
xul | ||
moz.build |