On 16 May 2004 at 23:33, Frank Heckenbach wrote:
I have uploaded a new beta version of GPC to http://www.gnu-pascal.de/beta/.
This version contains mostly bugfixes and only few and smaller new features. Therefore, if no serious bugs will be found in the next fews days, it can be recommended for production work.
[...]
Did something change in the OOP handling? (particular relating to polymorphism). A test program for my OOP framework is broken. The symptom is that a particular (virtual) method call doesn't reach the most proximate object - rather, the method that is called seems to be from an ancestor object. If I reinstall 20030830 and use it to compile the program, it works fine (as it should). The same program also works fine when compiled with FPC and Delphi.
I am trying very hard to narrow it down to a short program, but without success so far. Every small test program works as expected. It may of course be the result of a hidden bug in the OOP framework that 20030830 allowed and now is not allowed anymore - but I doubt it.
I am really not sure how to proceed, so I thought I'd better ask anyway, whether Frank or Waldek have changed anything in the OOP handling that could have broken the polymorphism. I will, of course, keep trying. I realise that I am not giving you much useful information to work on, but it is because I currently don't have any ...
In the meantime, is there a low-level hack that I can use to force the correct method (and not one from a remote parent) to be called? That may give a clue as to whether the problem is in my code or elsewhere. The actual method call is done somewhere in a remote parent - but the method that is called is virtual, and therefore the call should trickle down the line if the method has been overridden in a descendant object.
Sorry if all this sounds like gibberish - it's been a long day ...
Thanks. Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/