mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 995893 part.2 Unregister all references to nsTextStore before releasing its instance r=jimm
This commit is contained in:
parent
4cae0ee102
commit
0e2ed4569b
@ -576,7 +576,14 @@ nsTextStore::Init(ITfThreadMgr* aThreadMgr)
|
|||||||
nsTextStore::~nsTextStore()
|
nsTextStore::~nsTextStore()
|
||||||
{
|
{
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS,
|
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS,
|
||||||
("TSF: 0x%p nsTextStore instance is destroyed, "
|
("TSF: 0x%p nsTextStore instance is destroyed", this));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
nsTextStore::Shutdown()
|
||||||
|
{
|
||||||
|
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS,
|
||||||
|
("TSF: 0x%p nsTextStore::Shutdown() "
|
||||||
"mWidget=0x%p, mDocumentMgr=0x%p, mContext=0x%p, mIPProfileCookie=0x%08X, "
|
"mWidget=0x%p, mDocumentMgr=0x%p, mContext=0x%p, mIPProfileCookie=0x%08X, "
|
||||||
"mLangProfileCookie=0x%08X",
|
"mLangProfileCookie=0x%08X",
|
||||||
this, mWidget.get(), mDocumentMgr.get(), mContext.get(),
|
this, mWidget.get(), mDocumentMgr.get(), mContext.get(),
|
||||||
@ -588,13 +595,13 @@ nsTextStore::~nsTextStore()
|
|||||||
sTsfThreadMgr->QueryInterface(IID_ITfSource, getter_AddRefs(source));
|
sTsfThreadMgr->QueryInterface(IID_ITfSource, getter_AddRefs(source));
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
||||||
("TSF: 0x%p ~nsTextStore FAILED to get ITfSource instance "
|
("TSF: 0x%p nsTextStore::Shutdown() FAILED to get "
|
||||||
"(0x%08X)", this, hr));
|
"ITfSource instance (0x%08X)", this, hr));
|
||||||
} else {
|
} else {
|
||||||
hr = source->UnadviseSink(mIPProfileCookie);
|
hr = source->UnadviseSink(mIPProfileCookie);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
||||||
("TSF: 0x%p ~nsTextStore FAILED to uninstall "
|
("TSF: 0x%p nsTextStore::Shutdown() FAILED to uninstall "
|
||||||
"ITfInputProcessorProfileActivationSink (0x%08X)",
|
"ITfInputProcessorProfileActivationSink (0x%08X)",
|
||||||
this, hr));
|
this, hr));
|
||||||
}
|
}
|
||||||
@ -607,13 +614,13 @@ nsTextStore::~nsTextStore()
|
|||||||
sTsfThreadMgr->QueryInterface(IID_ITfSource, getter_AddRefs(source));
|
sTsfThreadMgr->QueryInterface(IID_ITfSource, getter_AddRefs(source));
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
||||||
("TSF: 0x%p ~nsTextStore FAILED to get ITfSource instance "
|
("TSF: 0x%p nsTextStore::Shutdown() FAILED to get "
|
||||||
"(0x%08X)", this, hr));
|
"ITfSource instance (0x%08X)", this, hr));
|
||||||
} else {
|
} else {
|
||||||
hr = source->UnadviseSink(mLangProfileCookie);
|
hr = source->UnadviseSink(mLangProfileCookie);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
PR_LOG(sTextStoreLog, PR_LOG_ERROR,
|
||||||
("TSF: 0x%p ~nsTextStore FAILED to uninstall "
|
("TSF: 0x%p nsTextStore::Shutdown() FAILED to uninstall "
|
||||||
"ITfActiveLanguageProfileNotifySink (0x%08X)",
|
"ITfActiveLanguageProfileNotifySink (0x%08X)",
|
||||||
this, hr));
|
this, hr));
|
||||||
}
|
}
|
||||||
@ -3862,6 +3869,10 @@ nsTextStore::Terminate(void)
|
|||||||
{
|
{
|
||||||
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS, ("TSF: nsTextStore::Terminate()"));
|
PR_LOG(sTextStoreLog, PR_LOG_ALWAYS, ("TSF: nsTextStore::Terminate()"));
|
||||||
|
|
||||||
|
if (sTsfTextStore) {
|
||||||
|
sTsfTextStore->Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
NS_IF_RELEASE(sDisplayAttrMgr);
|
NS_IF_RELEASE(sDisplayAttrMgr);
|
||||||
NS_IF_RELEASE(sCategoryMgr);
|
NS_IF_RELEASE(sCategoryMgr);
|
||||||
NS_IF_RELEASE(sTsfTextStore);
|
NS_IF_RELEASE(sTsfTextStore);
|
||||||
|
@ -226,6 +226,7 @@ protected:
|
|||||||
~nsTextStore();
|
~nsTextStore();
|
||||||
|
|
||||||
bool Init(ITfThreadMgr* aThreadMgr);
|
bool Init(ITfThreadMgr* aThreadMgr);
|
||||||
|
void Shutdown();
|
||||||
|
|
||||||
static void MarkContextAsKeyboardDisabled(ITfContext* aContext);
|
static void MarkContextAsKeyboardDisabled(ITfContext* aContext);
|
||||||
static void MarkContextAsEmpty(ITfContext* aContext);
|
static void MarkContextAsEmpty(ITfContext* aContext);
|
||||||
|
Loading…
Reference in New Issue
Block a user