[DUG] Is it a bug in latest version of Delphi? - Solution
Jolyon Smith
jsmith at deltics.co.nz
Wed Feb 24 11:36:43 NZDT 2010
Intel didn’t write the Delphi memory manager. And in any event, the list index out of bounds error triggered by storing -1 in the item data of a list/combobox item had NOTHING what-so-ever to do with the implementation of ANY memory manager or any changes in any memory manager.
I don’t recall suggesting that you or anyone else modify the VCL itself. You could work around the bug in the VCL by providing your own routines for retrieving item data values from a list/combo box that bypassed the erroneous VCL code, and again, routines for achieving precisely this were provided among the numerous responses that you didn’t wade through.
And to be honest, no it did not occur to me that you “knew what you were doing”, for the simple reason that you yourself seemed unclear as to the problem you thought you were solving (and still seem insistent that it was somehow something to do with an Intel memory manager). But even if you did know what you were doing at the time and had simply forgotten – which I do not discount; I forget things myself from time to time - someone reading your post would not have understood why your solution worked from the information in your post alone, hence I thought it useful to provide that explanation.
Forgive me for trying to be helpful. I do not see perpetuating an incorrect explanation (by failing to correct errors in it) for an issue for which the actual explanation is known and easily understood as being helpful. That is not a criticism of your post, which I am sure itself was also intended to be helpful. It is my explaining the reason I felt it helpful to provide some correction and additional insight.
Regards,
Jolyon
From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz] On Behalf Of Rohit Gupta
Sent: Wednesday, 24 February 2010 11:15 a.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Is it a bug in latest version of Delphi? - Solution
Jolyon,
As I mentioned I was reporting on things 7 years old, with failing memory quite common to my age.
And I am not going to spend the time searching for it to prove you right or wrong. Again, from memory, Intel was changing the design of the memory manager which was going to mean that a better definition of the null pointer would be ffffffffff... What happened with that, I do not know or care.
As for the rest, please pretend you are hearing the stereotypical Indian voice.
"Oh my golly gosh, thank you for clarifying that sir. I must have spent months trying a billion solutions before I must have accidentally found the X2."
Did it not occur to you, that it works because I knew what I was doing.... :-) And before you retort, I do not modify the vcl for any reason as it could lead to problems when using bpls on a clients machine where they already exist from some other application.
Rohit
Jolyon Smith wrote:
There was no change in the “Windows standard”. It’s a simple error in some poorly implemented error handling code added to the VCL at some point (subsequently fixed in combo boxes, but not listboxes – as of D2006).
You needn’t have waded through all the replies to find that the answer was provided. The answer came very quickly… what then followed was a great deal of pointless and diverting/misleading speculation as to other possible explanations that disregarded the fact that the answer was very quickly apparent from an inspection of the VCL source.
FYI - Your “multiple by 2” solution worked because it transformed a stored value of “-1” into “-2”, which then avoided the collision between that value (-1) and the Windows “error” code and thus avoided the problem caused by the overly-helpful and incorrectly implemented error handling code in the VCL.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20100224/3839ed60/attachment.html
More information about the Delphi
mailing list