× 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.



Well the proto barfs because that is its job. To make sure that the passed parameters match the "promise" in the proto. Had you coded const on the parm then the compiler would have been happy because it would have done the switch under the covers.

The reason that Qc3CalculateHash treats them the same is that they are - i.e. both are four byte binary integers - but the BinDec is "filtered" via a packed 9,0 field before being passed. Very inefficient and pointless. I wrote an article that described the difference at one time but am in a rush so can't look it up now.

I have been trying to get IBM to fix their header files (in SQSYSINC) and in their manuals for years. The problem stems from the fact that years ago, IBM semi-automated the translation of C header files to RPG - and in the days before Int was introduced type B (BinDec) was the only option for binary parms. Why they continued it when RPG IV came along and introduced true integers I have no idea - particularly when it causes truncation errors on large values - maybe because without Bruce Vining around there's nobody left with enough interest in making the automated tools all work properly. Although come to think of it Bruce was still around long after Ints came on the scene.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Mar 31, 2018, at 2:49 PM, Dan <dan27649@xxxxxxxxx> wrote:

Thanks Jon.

I originally defined inputlen as int(10), but left the Qc3CalculateHash
prototype as bindec(9) because that was how the IBM example defined it.
The compiler complained with RNF7535, so I changed inputlen's definition to
match the prototype from IBM's example. But, on your advice, I changed
both the prototype's definition and inputlen's definition to int(10), and
it works. I guess I find it odd that Qc3CalculateHash treats either
definition identically, but the compiler doesn't like it when the
prototype's definition isn't identical to the data type used in the call.

I'll update the github source later.

Thanks for the review, Jon!

- Dan

On Sat, Mar 31, 2018 at 8:37 AM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

One quick comment Dan - replace all "bindec" with Int. Bindec is
inefficient and deprecated sine the intro of ints. Please don't spread
that old-fashioned nastiness any further.

--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.