Toplevel::windowType becomes a pure virtual function
The method windowType needs actually two implementations: * one for Clients * one for Unmanaged as for Clients also the window rules are checked and hacks are applied which is both not needed for Unmanaged windows. To have the Client specific behavior in windowType the function used to perform two dynamic_casts which made this method one of the most expensive during compositing, e.g. for ~1000 frames * called ~43000 times * ~85000 dynamic casts * incl. cost of method: 0.24 * self cost of method: 0.05 * incl. cost of the casts: 0.12 After the change to remove the dynamic casts we have for ~1500 frames in Client::windowType: * called ~31000 times * incl. cost of 0.06 * self cost of 0.02 Calls on Unmanaged and Deleted are so low that we do not need to consider them. BUG: 306384 FIXED-IN: 4.10 REVIEW: 106349
parent
a4d5b395
Please register or sign in to comment