ProcessMgr Release Notes First created on: 3/20/92 4:35:54 PM ----------------------------------------------------------¥---------------------------------------------------------- 3/20/92 4:36:01 PM File: Language.h,4 Owner: Don Louv Project: MainProjºInterfacesºCIncludesº File: Packages.h,21 Owner: Don Louv Project: MainProjºInterfacesºCIncludesº File: Script.h,52 Owner: Don Louv Project: MainProjºInterfacesºCIncludesº File: Language.p,4 Owner: Don Louv Project: MainProjºInterfacesºPInterfacesº File: Packages.p,20 Owner: Don Louv Project: MainProjºInterfacesºPInterfacesº File: Script.p,50 Owner: Don Louv Project: MainProjºInterfacesºPInterfacesº File: MenuMgrPatches.c,9 Owner: Don Louv Project: MainProjºProcessMgrº File: MenuMgr.c,8 Owner: Don Louv Project: MainProjºToolboxºMenuMgrº Radar bug: #1025005 > Release notes for this change: Moving declarations in include files for the New Inside Mac. And updated 2 files to follow the declarations they need. > What was tested: Built CUBE-E. ----------------------------------------------------------¥---------------------------------------------------------- 3/25/92 1:06:44 PM File: MFPrivate.a,22 Owner: Dean Yu Project: MainProjºInternalºAsmº File: MFPrivate.h,24 Owner: Dean Yu Project: MainProjºInternalºCº File: Data.c,21 Owner: Dean Yu Project: MainProjºProcessMgrº File: Data.h,35 Owner: Dean Yu Project: MainProjºProcessMgrº File: OSDispatch.c,12 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: #1024114 > Release notes for this change: Application Assassin doesnÕt work in Cube-E because it relied on hard coded offsets to Process Manager globals. Too bad these globals moved in Cube-E. Since the Assassin is in the Finder in Cube-E, provide an interface to get to these globals so that the Finder and the Process Manager arenÕt TOO incestuous. Added PEntryFromProcessSerialNumber, which is selector $4F off of _OSDispatch. > What was tested: ThereÕs an internal routine, PEntryFromPSN which does exactly what we want. We made a copy of this routine and gave it a public private interface. Changed a call to PEntryFromPSN to call the new routine and watched it go through the dispatcher and return the same result as the original routine. ----------------------------------------------------------¥---------------------------------------------------------- 3/30/92 3:28:02 PM File: GestaltPrivateEqu.a,39 Owner: Dean Yu Project: MainProjºInternalºAsmº File: MFPrivate.h,25 Owner: Dean Yu Project: MainProjºInternalºCº File: Data.c,22 Owner: Dean Yu Project: MainProjºProcessMgrº File: Data.h,36 Owner: Dean Yu Project: MainProjºProcessMgrº File: ProcessMgrMisc.a,17 Owner: Dean Yu Project: MainProjºProcessMgrº File: Startup.c,21 Owner: Dean Yu Project: MainProjºProcessMgrº File: Switch.c,18 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: #1025416 > Release notes for this change: On each Process Manager context switch, call Skia to tell it to switch itÕs globals as well. > What was tested: Booted new system with and without Skia. Without Skia installed, the new code is not executed. With Skia installed, the Skia trap is called by switch_task. ----------------------------------------------------------¥---------------------------------------------------------- 4/4/92 6:19:06 PM File: DAHandler.c,14 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: #1019369 > Release notes for this change: Also bugs 1015630 & 1015640. Instead of having each DA lock and unlock the keyboard, let DA Handler do it for them. Now, each DA sets the keyboard to the desired state in itÕs open call, and DA Handler will set and restore this state for each DA. > What was tested: Keyboard menu is set to the correct state for each desk accessory, and state is restored when a desk accessory is switched out. ----------------------------------------------------------¥---------------------------------------------------------- 4/22/92 4:50:25 PM File: Schedule.c,17 Owner: John Harvey Project: MainProjºProcessMgrº Radar bug: #1027915 > Release notes for this change: If the an input method opens a floating window in the context of a TSM unaware application that window gets assigned to the swmdriver. However, if the user then switches to a TSM aware application any mousedown events will be routed to the swmdriver rather than the TSM aware application. That means that the input method gets an A5 world that belongs to the Process Manager and not the TSM aware application. When the input method subsequently tries to callback to the application a5 belongs to the process manager. If the application depends on being able to access globals in its AppleEvent handlers we get some fancy crashes. To fix this problem we make a last minute check to see if the current application is TSM aware before call SendEventToSWMDriver. If the app is TSM aware we route the event to the application which will subsequently call TSMEvent. The input method will then get proper A5 globals and all will be well with the world. > What was tested: Built the system. Ran Kadokawa (inline aware test app) and clicked on AkikoÕs buttons. This formerly would bus error. DoesnÕt crash anymore. ----------------------------------------------------------¥---------------------------------------------------------- 4/25/92 2:56:52 PM File: EventMgrPatches.c,25 Owner: Yosuke Kurita Project: MainProjºProcessMgrº File: Schedule.c,18 Owner: Yosuke Kurita Project: MainProjºProcessMgrº Radar bug: #1027486 > Release notes for this change: When a modal dialog is the front window, most of the applications cannot handle the update event for another window properly. In particular, if the ÔAbout KeyboardsÉÕ dialog is the front, nobody can handle it. This means that every GetNextEvent call returns an update event until the modal dialog is dimissed. This causes many problemsÉ In the previous implementation, even TSM windows cannot receive update events in this situation. To solve this problem, move the code, which checks the update region for TSM windows, from nexttask() in Scheduler.c to event_common() in EventMgrPatches.c. > What was tested: Open TSM windows and a modal dialog, move TSM windows around to generate update regions. TSM windows get updated properly. ----------------------------------------------------------¥---------------------------------------------------------- 4/29/92 5:31:53 PM File: Schedule.c,19 Owner: Yosuke Kurita Project: MainProjºProcessMgrº Radar bug: #1028427 > Release notes for this change: Pass mouse down events to the front application when the front app is inline aware. > What was tested: Launch an inline aware app, then click AkikoÕs palette. The event was sent to the front app, instead of swm driver as expected. ----------------------------------------------------------¥---------------------------------------------------------- 5/11/92 11:31:30 AM File: SysPrivateEqu.a,58 Owner: Jeff Miller Project: MainProjºInternalºAsmº File: ExpandMemPriv.h,36 Owner: Jeff Miller Project: MainProjºInternalºCº File: Startup.c,22 Owner: Jeff Miller Project: MainProjºProcessMgrº Radar bug: #1029437 > Release notes for this change: Added emProcessMgrExists to ExpandMem to indicate that booting has progressed far enough that the Process Mgr exists, changed the Process Mgr to set this field to true after calling MyNewGestalt(), which is where it installs its gestaltOSAttr function. The existence of this Gestalt function was previously how system software could tell if the Process Mgr was up yet. > What was tested: Booted on an LC, verified in MacsBug that emProcessMgrExists is false early in the boot process, and is 1 after the machine is up and running. ----------------------------------------------------------¥---------------------------------------------------------- 5/11/92 8:28:57 PM File: Windows.h,15 Owner: John Harvey Project: MainProjºInterfacesºCIncludesº File: EventMgrPatches.c,26 Owner: John Harvey Project: MainProjºProcessMgrº File: Schedule.c,20 Owner: John Harvey Project: MainProjºProcessMgrº Radar bug: #1029361 > Release notes for this change: Needed to identify floating windows via the windowkind rather than the refcon. So started off by adding two new kinds of windowkinds -- applicationFloatKind(6) and systemFloatKind(7) -- in windows.h. Then changed the routine imLayerMouseDown in the Process Manager file Schedule.c to check the windowkind of the floating layer. If it is systemFloatKind and the boolean RouteEvent (plus a couple of other extra safe conditions) is true the mousedown is sent to the swmDriver. Otherwise, the event is sent to the front process. That way processes can open up the new style floating windows without being inline aware or having to rely on the swmdriver being around. > What was tested: Built the system ran it with Non-TSM aware application (KeyCaps) and tested with Kadokawa the TSM aware application from Japan. Worked fine. ----------------------------------------------------------¥---------------------------------------------------------- 5/19/92 2:10:17 PM File: WindowMgrPatches.c,6 Owner: Yosuke Kurita Project: MainProjºProcessMgrº Radar bug: #1030028 > Release notes for this change: Remove unused code. The only one reason why I made changes in c_initwindows is just for making the SWM application work for TSM. But SWM is not an application now, so these changes are no longer necessary. > What was tested: Launched applications that call InitWindows trap. They worked fine. ----------------------------------------------------------¥---------------------------------------------------------- 5/21/92 11:18:12 AM File: SegmentLoaderPatches.c,18 Owner: Greg Marriott Project: MainProjºProcessMgrº Radar bug: #1030303 > Release notes for this change: Support the new SIZE(1) resource when launching applications. Process Manager now checks for SIZE(1), falls back on SIZE(0), falls further back on SIZE(-1), and then gives up and uses default values for partition sizes. It used to start the above sequence at SIZE(0). Also, PM syncronizes the contents of the SIZE(1) (used for 7.1 and later) and SIZE(0) (used for pre-7.1) before launching. This is in case someone has edited the size for the application under 7.0 and then launched it under 7.1 (or later). > What was tested: I launched applications with the changes installed, setting their sizes to various values, and verified that launching behavior is the same as under 7.0. Then I changed several sizes under 7.0 to see what happened when launching them with Cube-E, and everything went as expected (i.e. the SIZE(0) changes migrated to the SIZE(1) resource as planned). ----------------------------------------------------------¥---------------------------------------------------------- 6/8/92 9:32:27 AM File: Schedule.c,21 Owner: John Harvey Project: MainProjºProcessMgrº Radar bug: #1031701 1031701 > Release notes for this change: Removing PtInRgn from imLayerMouseDown. This is a superfluous test since the swapCurLayer, FindWindow, SetCurLayer sequence which immediately follows the PtInRgn test will always do the right thing. In addition, for the PtInRgn call to work the layer manager will always have to maintain the structrgn state as it is maintained today. This assumption will break (does break?) the shuffle window manager changes done by Dave Collins for O.C.E. > What was tested: Build the system ran it with Akiko. Mousedowns in floating windows still work correctly. ----------------------------------------------------------¥---------------------------------------------------------- 6/12/92 03:18:22 PM File: Data.h,37 Owner: pete helme Project: MainProjºProcessMgrº File: MemoryMgr24Patches.c,10 Owner: pete helme Project: MainProjºProcessMgrº File: MemoryMgr32Patches.c,11 Owner: pete helme Project: MainProjºProcessMgrº Radar bug: #1032359 > Release notes for this change: 68040 memory manager (Terror ROM) has been patched to quadword align all blocks. The ProcessMgr has to do this in itÕs blocks too so that itÕs consistent and also remove the possibility of physical size of the block being > 16 bytes beyond logical end of block. This was creating problems in 24 bit mode where some blocks were getting way too big because of mixed alignment. > What was tested: Tested with Installer (which is where we found the original bug) on Quadras in 24 & 32 bit mode. ProcessMgr heap blocks are now quad word aligned. yeah! ----------------------------------------------------------¥---------------------------------------------------------- 6/22/92 4:00:23 PM File: Schedule.c,23 Owner: Yosuke Kurita Project: MainProjºProcessMgrº Radar bug: #1033306 > Release notes for this change: A Single Click occasionally acts like ÔDouble ClickÕ in floating windows. This is because that the imLayerMouseDown function does not remove the mouse down event from the event queue if the event was found by OSEventAvail in fg_resched. Change imLayerMouseDown and fg_resched to remove the mouse down event for a floating window whenever itÕs found. > What was tested: Click AkikoÕs pallet. It no longer posts an character. ----------------------------------------------------------¥---------------------------------------------------------- 6/22/92 7:56:12 PM File: Data.h,38 Owner: Dean Yu Project: MainProjºProcessMgrº File: MemoryMgr24Patches.c,11 Owner: Dean Yu Project: MainProjºProcessMgrº File: MemoryMgr32Patches.c,12 Owner: Dean Yu Project: MainProjºProcessMgrº File: MemoryMgrPatches.c,12 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: #1033275 > Release notes for this change: The Terror Memory Manager wants to keep memory blocks 16-byte aligned for speed. However, the Process Manager doesnÕt do this as itÕs creating application heaps, and allocation temporary memory. The original change was made in a routine that assumed that the needed size would never be larger than the size of the free block that the memory was being chipped off of. When the change did the quad alignment, it broke this assumption. This winds up trashing the Process Manager heap. Moved the quad alignment out one level. In this routine, there is code which aligns memory blocks on long word boundaries. The quad alignment code was added here, and quad alignment is done if weÕre running on an 040 machine, and does the old longword alignment in other cases. > What was tested: Excel, TeachText, etc. donÕt crash on a Quadra any more if the preferred memory size is set to be larger than available memory. ----------------------------------------------------------¥---------------------------------------------------------- 7/8/92 1:56:52 AM File: Lomem.h,4 Owner: Greg Marriott Project: MainProjºProcessMgrº File: ResourceMgrPatches.c,8 Owner: Greg Marriott Project: MainProjºProcessMgrº File: ResourceOverridePatches.a,52 Owner: Greg Marriott Project: MainProjºToolboxºResourceMgrº Radar bug: #1035120 > Release notes for this change: Fix the resource manager so it wouldnÕt cause problems for the font manager when disposing or releasing a resource being referred to in the LastFOND global. If the file containing the FOND was closed, or the resource released, then a dangling handle would be left in LastFOND. A patch to ReleaseResource now clears LastFOND if the resource being released is also referred to in LastFOND. A patch to CloseResFile now clears LastFOND if the file being closed contains any fonts (FONT, NFNT, and FOND). > What was tested: Run the crashing case from 1035120 and verify that it doesnÕt crash any more. Also, pop into the debugger and watch the patches zero the low memory global when appropriate. ----------------------------------------------------------¥---------------------------------------------------------- 7/20/92 8:22:15 PM File: EventMgrPatches.c,27 Owner: Kenny S. Tung Project: MainProjºProcessMgrº Radar bug: #1033230 > Release notes for this change: MouseDown event for the TSM aware application is posted to the PseudoEvent queue (and the original even is changed to a NULL event). This MouseDown event should have higher precedence than the UpdateEvent when GetNextEvent() is called (IM I-245). There was a bug in our patch to the Process Manager which didnÕt check the PseudoEvent queue when an UpdateEvent is been generated. And therefore in this particular case, GetNextEvent() only returns NULL event and UpdateEvent to the ModalDialog. Because there is no MouseDown event been sent to the input method, AkikoÕs floating window cannot be dragged. You may ask why it works without TSMTE. The answer is when a MouseDown event happens and the application is not TSM aware, that MouseDown event gets send to the SWM driver directly thru the _Control call. > What was tested: Tested with Kadokawa and we can drag AkikoÕs window now. However, we would like this change gets more test support from SQE to make sure it is perfect. ----------------------------------------------------------¥---------------------------------------------------------- 7/27/92 5:05:57 PM File: EventMgrPatches.c,28 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: #1037295 > Release notes for this change: In the previous change, retVal would be set to the result from GetNextPseudoEvent. If there is no pseudoevent, the pending update event is never processed. This causes modal dialogs to come up blank. DonÕt set retVal to be the result of GetNextPseudoEvent so that updates will be processed if there are no pseudo events. > What was tested: A reproducable case was found with the Curare application when trying to save a file. The ÒAre you sure you want to replaceÓ subdialog from Standard File would come up blank. With this change, this modal dialog is always drawn correctly. ----------------------------------------------------------¥---------------------------------------------------------- 8/13/92 12:31:33 PM File: EventMgrPatches.c,30 Owner: Kenny S. Tung Project: MainProjºProcessMgrº Radar bug: #1039646 > Release notes for this change: PhotoShop would crash if you opened a TSM floating window. The problem was the the changes in event_common to support floating windows just ignored activate events, since activate events donÕt make sense in terms of floating windows. That meant that activate events for floating system windows were mistakenly passed to applications. This apparently didnÕt matter much for must apps, but PhotoShop graps a code block out of the windowÕs refcon and tries to jump to it. Since the refcon of a system floater is something very different from a ptr to a block of code, PhotoShop would crash. This was fixed by changing event_common so that it pays attention to activate events intended for system floating windows. Now these are converted to nullevents, and false is returned by event_common. > What was tested: Built a new system ran Photoshop, opened akiko, moved its windows around, typed text, etc. ----------------------------------------------------------¥---------------------------------------------------------- 8/17/92 3:05:33 PM File: Data.c,23 Data.h,40 EventMgrPatches.c,31 OSDispatch.c,15 Schedule.c,25 Startup.c,23 Owner: Herm‡n J. Camarena Project: MainProjºProcessMgrº > Release notes for this change: Implemented support for the "Defer Drag" feature of OCE. All changes are conditionally compiled under MODSQUAD. > What was tested: Built a new system ran Claris Applications, OCE a9, Bungee finder, etc. ----------------------------------------------------------¥---------------------------------------------------------- 8/26/92 3:48:09 PM File: Aux.c,5 Owner: Dean Yu Project: MainProjºProcessMgrº File: Aux.h,3 Owner: Dean Yu Project: MainProjºProcessMgrº File: Data.h,41 Owner: Dean Yu Project: MainProjºProcessMgrº File: EventMgrPatches.c,32 Owner: Dean Yu Project: MainProjºProcessMgrº File: OSDispatch.c,16 Owner: Dean Yu Project: MainProjºProcessMgrº File: OSDispatchPrivate.h,11 Owner: Dean Yu Project: MainProjºProcessMgrº File: Processes.c,52 Owner: Dean Yu Project: MainProjºProcessMgrº File: Startup.c,24 Owner: Dean Yu Project: MainProjºProcessMgrº File: Switch.c,19 Owner: Dean Yu Project: MainProjºProcessMgrº File: SysMisc.h,13 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: > Release notes for this change: Roll in latest A/UX changes. > What was tested: All changes have been conditionalized for A/UX, and do not affect Cube-E or the System build. ----------------------------------------------------------¥---------------------------------------------------------- 8/26/92 4:18:20 PM File: Data.c,24 Owner: Dean Yu Project: MainProjºProcessMgrº File: Data.h,42 Owner: Dean Yu Project: MainProjºProcessMgrº File: EventMgrPatches.c,33 Owner: Dean Yu Project: MainProjºProcessMgrº File: OSDispatch.c,17 Owner: Dean Yu Project: MainProjºProcessMgrº File: Schedule.c,26 Owner: Dean Yu Project: MainProjºProcessMgrº File: Startup.c,25 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: > Release notes for this change: Change the funky MODSQUAD conditional to be #ifdefÕs like everything else. > What was tested: No object code was changed at all. ----------------------------------------------------------¥---------------------------------------------------------- 9/25/92 2:23:36 PM File: DAHandler.a,4 Owner: Dave Falkenburg Project: MainProjºProcessMgrº File: DAHandler.c,16 Owner: Dave Falkenburg Project: MainProjºProcessMgrº File: MenuMgrPatches.c,10 Owner: Dave Falkenburg Project: MainProjºProcessMgrº File: ProcessMgrMisc.a,18 Owner: Dave Falkenburg Project: MainProjºProcessMgrº File: Startup.c,26 Owner: Dave Falkenburg Project: MainProjºProcessMgrº Radar bug: > Release notes for this change: Eliminated MyGestalt() from DAHandler and ProcessMgr. This ended up putting two copies of assembly glue to call _Gestalt into the system file. Since _Gestalt is inline glue anyway, this was a waste of time. > What was tested: Built System ----------------------------------------------------------¥---------------------------------------------------------- 10/27/92 6:22:14 PM File: Switch.a,7 Owner: Dean Yu Project: MainProjºProcessMgrº File: Switch.c,21 Owner: Dean Yu Project: MainProjºProcessMgrº Radar bug: > Release notes for this change: Change some BlockMoves to BlockMoveData, so the caches donÕt get flushed. > What was tested: Built a new Process Manager and booted with it. On systems with BlockMoveData, BlockMoveData is used, and the caches arenÕt flushed. On systems without BlockMoveData, the old BlockMove is used. ----------------------------------------------------------¥----------------------------------------------------------