diff options
author | Father Chrysostomos <sprout@cpan.org> | 2013-08-25 00:08:21 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2013-08-25 06:40:34 -0700 |
commit | c70927a6ffc3cac8e5ec375a3f7e13b4f7bd1ee4 (patch) | |
tree | 477e6abc58c0898bee5727b3feb27c9af685f49b /dist/Math-BigInt-FastCalc | |
parent | 9a543cee73966ca61d6dc71cc7322f271f5b6b8b (diff) | |
download | perl-c70927a6ffc3cac8e5ec375a3f7e13b4f7bd1ee4.tar.gz |
Use SSize_t for arrays
Make the array interface 64-bit safe by using SSize_t instead of I32
for array indices.
This is based on a patch by Chip Salzenberg.
This completes what the previous commit began when it changed
av_extend.
Diffstat (limited to 'dist/Math-BigInt-FastCalc')
-rw-r--r-- | dist/Math-BigInt-FastCalc/FastCalc.xs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/dist/Math-BigInt-FastCalc/FastCalc.xs b/dist/Math-BigInt-FastCalc/FastCalc.xs index a8247c9508..a045c7172e 100644 --- a/dist/Math-BigInt-FastCalc/FastCalc.xs +++ b/dist/Math-BigInt-FastCalc/FastCalc.xs @@ -108,7 +108,7 @@ _copy(class, x) INIT: AV* a; AV* a2; - I32 elems; + SSize_t elems; CODE: a = (AV*)SvRV(x); /* ref to aray, don't check ref */ @@ -144,8 +144,8 @@ __strip_zeros(x) INIT: AV* a; SV* temp; - I32 elems; - I32 index; + SSize_t elems; + SSize_t index; CODE: a = (AV*)SvRV(x); /* ref to aray, don't check ref */ @@ -189,8 +189,8 @@ _dec(class,x) INIT: AV* a; SV* temp; - I32 elems; - I32 index; + SSize_t elems; + SSize_t index; NV MAX; CODE: @@ -233,8 +233,8 @@ _inc(class,x) INIT: AV* a; SV* temp; - I32 elems; - I32 index; + SSize_t elems; + SSize_t index; NV BASE; CODE: @@ -347,13 +347,13 @@ _acmp(class, cx, cy); INIT: AV* array_x; AV* array_y; - I32 elemsx, elemsy, diff; + SSize_t elemsx, elemsy, diff; SV* tempx; SV* tempy; STRLEN lenx; STRLEN leny; NV diff_nv; - I32 diff_str; + SSize_t diff_str; CODE: array_x = (AV*)SvRV(cx); /* ref to aray, don't check ref */ @@ -376,7 +376,7 @@ _acmp(class, cx, cy); tempy = *av_fetch(array_y, elemsx, 0); /* fetch last element */ SvPV(tempx, lenx); /* convert to string & store length */ SvPV(tempy, leny); /* convert to string & store length */ - diff_str = (I32)lenx - (I32)leny; + diff_str = (SSize_t)lenx - (SSize_t)leny; if (diff_str > 0) { RETURN_MORTAL_INT(1); /* same len, but first elems differs in len */ |