|
This is a little too pocket protector-ish for me... how do I fix it? Use procedure variables instead of paramaters and populate the variables based on the parms sent? I don't claim to understand all this memory management type stuff, but if this is a potential problem then why allow it? Doesn't the procedure allocate all the storage it needs? The procedure knows the parm is used as a local variable and space is allocated for the variable, so why wouldn't there be storage allocated for it, passed or not? Thanks, Joel http://www.rpgnext.com >jrc@xxxxxxxxxx wrote: >> >> ... >> I use this approach all the time to establish >> default behaviours: add the 'Value' attribute to >> the prototype for the new parm: >> >> D CalcDat pr >> ExtPgm('CALCDAT') >> ... >> D outDat 10 >> >> D outDatFmt 10 >> Value Options(*nopass) >> >> >> Now you can use outDatFmt even if it wasn't >> sent... just don't forget to initlize it... >> > >Joel, that's a dangerous thing to do. You're >assuming that there is >storage available for your procedure to use, but >that's not necessarily >the case. > >Since the system doesn't know you're using that >storage as a local >variable, that storage could get used for >parameter passing when your >procedure makes a call. (Your procedure might >make explicit calls, or >the compiler might generate some calls to the RPG >runtime.) > >Even if this is working for you now, it might stop >working at any time. > >_______________________________________________ >This is the RPG programming on the AS400 / iSeries >(RPG400-L) mailing list >To post a message email: RPG400-L@xxxxxxxxxxxx >To subscribe, unsubscribe, or change list options, >visit: >http://lists.midrange.com/mailman/listinfo/rpg400-l >or email: RPG400-L-request@xxxxxxxxxxxx >Before posting, please take a moment to review the >archives >at http://archive.midrange.com/rpg400-l. >
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.