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

Reply via email to