The current implementation of the live marking routines requires each live marking routine to set up a mark in each live call using the contents of a global variable. This can be made more efficient by passing the already constructed mark word value as an argument to the live() and liveGeneral() methods. Since most compilers use some form of register argument passing and will attempt to optimize the usage, there's an excellent chance this value will just remain in a register during the mark operations.
Also, on the liveGeneral() calls, it would be useful to pass the operation reason code as an argument rather than relying on global variables for the trigger.
Anonymous
Logged In: YES
user_id=1125291
Originator: YES
Committed revision 1635.