On 21/10/2025 08:03, Sven Barth via fpc-devel wrote:
Sven Barth <[email protected] <mailto:[email protected]>> schrieb am Mo., 20. Okt. 2025, 22:14:__ Am 18.10.2025 um 22:39 schrieb Bart via fpc-devel:On Fri, Oct 17, 2025 at 9:33 PM Sven Barth via fpc-devel <[email protected]> <mailto:[email protected]> wrote:David's problem is *not* due to a corruction or a bug, but due to an optimization that FPC performs that leads to different behavior, namely changing virtual methods that are empty to EmptyMethod to reduce the number of duplicate (empty) methods in the binary.Does that mena that such a check is in essence invalid? IIRC then we have such a check in TCustomEdit in LCL....Well, the language does neither explicitly forbid nor allow it... So you'd have to do a more complete check that includes both the real base method as well as System.EmptyMethod. Maybe best move the general check to a separate function which gets passed both method pointers and then compares those as well as the base one against EmptyMethod.Sleeping about this a bit I think the solution needs to if either of two methods is redirected to EmptyMethod then the code must assume that the method was overridden, cause that's the only save assumption it can do (and afterall code should handle that gracefully even if it might be less optimal from the developer's point of view).
In the LCL case the original method is not empty so it shouldn't be a problem there.
Marc _______________________________________________ fpc-devel maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
