In soap/xsd/long.cpp we use strtol() as follows:
*minInclusive = strtol ("-9223372036854775808", &end, 10);
and
*maxInclusive = strtol ("9223372036854775807", &end, 10);
for min and max. strtol() converts string to long integer. long integer
is 32 bits on OS/400, so the resultant value is not correct. Is there a
way to make this platform free of code (which is why i proposed the use of
limits.h)? On OS/400, we can do something like
long long x = 9223372036854775807LL. is this a standard or an OS/400
thing?
If not, it may be a candidate for platform abstraction layer.
Nadir K. Amra
Mark Whitlock <[EMAIL PROTECTED]> wrote on 05/18/2005 04:00:20 AM:
>
>
>
>
> In src/soap/xsd the classes (eg Int.cpp) use hardcoded values because
these
> limits are defined by the SOAP spec. Values from limits.h are platform
> specific.
> Mark
> Mark Whitlock
> IBM
>
> ----- Forwarded by Mark Whitlock/UK/IBM on 18/05/2005 09:53 -----
>
> Nadir Amra
> <[EMAIL PROTECTED]>
> To
> 17/05/2005 20:44 "Apache AXIS C Developers List"
> <[email protected]>
>
>
> OS/400 is 64-bit machine. ints and longs are 32 bit. long long is
64bit.
>
> In addition, I was wondering why we do not use the <limits.h> file to
> determine max/min value for the various types? I saw that we hard-code
> the values when checking for ranges.
>
> Nadir K. Amra
>
>