|
In this case, the parm lengths and definition location in the caller program is the problem. In the RPG program static storage allocation, the MSDT$E field is defined as some length like 33 in the caller program, field $RTC$E is defined immediately after it with a length of at least 6. When this routine is called, the caller passes a space pointer to MSDT$E at some address and the caller also passes a space pointer to field $RTC$E. For this explanation, assume that the location of MSDT$E is decimal 1001 and the location of $RTC$E is decimal 1034. Neither field MSDT$E nor field $RTC$E occupies space in the callee program, they are used by reference. Since it is defined as a *ENTRY parameter, the callee length should match the caller length definition. When they don't match, this is the AS/400 version of a memory leak - you can change memory that doesn't belong to you. I have spent days trying to find these things. I am feeling like this is a very weak explanation of the problem. If you can't figure it out from this poor explanation, please drop me another note. Richard Jackson mailto:richardjackson@richardjackson.net www.richardjacksonltd.com Voice: 1 (303) 808-8058 Fax: 1 (303) 663-4325 -----Original Message----- From: owner-rpg400-l@midrange.com [mailto:owner-rpg400-l@midrange.com]On Behalf Of Silvio Santos Sent: Wednesday, July 12, 2000 5:01 AM To: RPG400-L@midrange.com Subject: RPG/400 pgm strange behaviour I have a program (RPG/400) that checks if some record exists and return. These two filds are *ENTRY parms of the PGM: MSDT$E - length 256 $RTC$E (*FOUND or *ERROR) - length 8A The condition used is like this: *IN,96 IFEQ '0' MOVEL'*FOUND' $RTC$E MOVELMSDTOH MSDT$E ELSE MOVEL'*ERROR' $RTC$E ENDIF It works fine, excepts for one thing: if the condition is true, when it moves the MSDTOH content to MSDT$E, it erases the $RTC$E field. For the other hand, when the first move is done, the '*Found' is placed in the 34th position of the field MSDT$E. Is there any restriction about entry parms lenght ? How can I resolve this? Thanks ,,,,,, (o o) -----------------------oOO--(_)--OOo------------------------ Silvio Santos BRAIN Portugal Tel: +351 252 248-120 Av. Joao Canavarro, 305 Fax: +351 252 248-111 4480-668 Vila do Conde Portugal Email: silvio.santos@brainag.com Web-Page: www.brainag.com --------------------------------------------------------------------- +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +--- +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
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.