|
>I've now got everything stripped all the way >down to no memory management at all (maximum >sizes defined on the d-specs) and everything >works fine. So I'll have to start adding things >back in one at a time to try to determine where >the problem is. Hi Nelson! When I do something like this I always look to the parameter list. Make certain that ALL the parameter lists match; not just the ones relating to this particular function. Also, look to any place where you have varying length strings, especially options(*varsize). It is trivially easy to shoot myself in the foot by doing a CLEAR or MOVE *BLANKS to a *varsize field. The problem is that the procedure doesn't own all that memory: the caller does. And if the caller only declared 10 bytes instead of the maximum 100, I am clearing 90 bytes of the caller's memory that I don't own. Always remember that the corruption may come from ANYWHERE. The error only comes when some unsuspecting reference gets made to the bad memory. --buck
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.