From 007ff4649de96b9a337928c827adebdd5e1b0f5b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 11 Mar 2009 16:51:19 +0000 Subject: [PATCH] yet another attempt to solve Mac event-loop AE problems svn: r14051 --- src/mred/mredmac.cxx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/mred/mredmac.cxx b/src/mred/mredmac.cxx index d585074b68..547e65acc4 100644 --- a/src/mred/mredmac.cxx +++ b/src/mred/mredmac.cxx @@ -300,15 +300,17 @@ static void EnsureWNEReturn() ProcessSerialNumber psn; AppleEvent ae, ae_target; - pending_self_ae = 1; - - GetCurrentProcess(&psn); - AECreateDesc(typeProcessSerialNumber, &psn, sizeof(psn), &ae_target); - AECreateAppleEvent('MrEd', 'Smug', &ae_target, kAutoGenerateReturnID, kAnyTransactionID, &ae); - AESend(&ae, NULL, kAENoReply, kAENormalPriority, kNoTimeOut, NULL, NULL); - /* Not supposed to dispose? */ - /* AEDisposeDesc(&ae); */ - /* AEDisposeDesc(&ae_target); */ + if (GetCurrentProcess(&psn) == noErr) { + if (AECreateDesc(typeProcessSerialNumber, &psn, sizeof(psn), &ae_target) == noErr) { + if (AECreateAppleEvent('MrEd', 'Smug', &ae_target, kAutoGenerateReturnID, kAnyTransactionID, &ae) == noErr) { + if (AESend(&ae, NULL, kAENoReply, kAENormalPriority, kNoTimeOut, NULL, NULL) == noErr) { + pending_self_ae = 1; + } + AEDisposeDesc(&ae_target); + } + AEDisposeDesc(&ae); + } + } } }