× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Charles,

Thanks for the input.
I guess my line of thought is that the procedure is returning a value,
so I should avoid returning that value in a parm and return it in the
return field (if that's the official term for it I'm not sure).  But,
being a data structure storing multiple fields, I thought it best to
return it by reference (return the pointer) instead of returning it by
value.  The ActGrp I'm using is *New, and I have other fields defined as
static (albeit only used w/in the procedure in which they are defined).

I see where you're coming from I think, but maybe an explanation (or a
link) to why it's a no-no would be helpful.

Kurt Anderson
Application Developer
Highsmith Inc

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Wilt, Charles
Sent: Thursday, January 12, 2006 7:14 AM
To: RPG programming on the AS400 / iSeries
Subject: RE: Procedure returning a pointer, and debugging

Kurt,

Glad it works, but IMHO you should reconsider doing this.  Passing back
a point to a procedures private data is a big no-no.

Either return the DS itself, or pass a DS by reference into the
procedure for update.

Just my .02

Charles Wilt
--
iSeries Systems Administrator / Developer Mitsubishi Electric Automotive
America
ph: 513-573-4343
fax: 513-398-1121
  

> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kurt Anderson
> Sent: Wednesday, January 11, 2006 5:37 PM
> To: RPG programming on the AS400 / iSeries
> Subject: RE: Procedure returning a pointer, and debugging
> 
> Larry,
> 
> Your input lead me to the answer.
> I didn't have the pointer in the subprocedure defined as static, which

> is ok... But the problem I had is that I didn't have the data 
> structure (which is what the pointer was pointing to) defined as 
> Static.  So, I put the Static keyword on it and it works great.
> 
> Thanks,
> 
> Kurt Anderson
> Application Developer
> Highsmith Inc
> 
> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Larry Ducie
> Sent: Wednesday, January 11, 2006 4:26 PM
> To: rpg400-l@xxxxxxxxxxxx
> Subject: Re: Procedure returning a pointer, and debugging
> 
> D'oh!
>  
> <snip>
> Is the pointer defined as static..?
> </snip>
>  
> Obviously, I meant: Is the pointer NOT defined as static..?
>  
> I must learn how to switch off this predictive-text keyboard!  ;-)
>  
> Larry Ducie
>  
> 
> -----Original Message-----
> From: Larry Ducie [mailto:Larry_Ducie@xxxxxxxxxxx]
> Sent: 11 January 2006 22:19
> To: rpg400-l@xxxxxxxxxxxx
> Subject: Re: Procedure returning a pointer, and debugging
> 
> 
> Hi Kurt,
>  
> Is the pointer you are passing back defined within the procedure you 
> are calling..? Is the pointer defined as static..?
>  
> If so you will have trouble because when the procedure returns the 
> pointer will be destroyed. The OS may use up the memory allocated to 
> it for something else at any point, but when this occurs is 
> indeterminate. So, a quick return may well result in data still 
> untouched (and the chain
> succeeding) , but if a long time elapses (like when debugging) the OS 
> may well allocate the storage to something else and "corrupt"
> your data. It
> may
> be better to pass your pointer in as an input-output variable and let 
> the procedure write data to that. This way, your data will still exist

> prior and after the call. This is how standard IBM APIs usually work.
>  
> I believe that, even though the pointer is passed back by value you 
> are simply setting your pointer to point to the same address as the 
> pointer defined in your procedure (which no longer exists).
>  
> HTH
>  
> Larry Ducie
> 
> --
> 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.
> 
> 
> --
> 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 thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.