if (aint >= 128) /* fake up signed chars */
aint -= 256;
if (!checksum) {
- sv = newSViv((IV)aint);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)aint)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aint;
EXTEND_MORTAL(len);
while (len-- > 0) {
auint = *s++ & 255;
- sv = newSViv((IV)auint);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)auint)));
}
}
break;
along = alen;
s += along;
if (!checksum) {
- sv = newSVuv((UV)auint);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv((UV)auint)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)auint;
DO_BO_UNPACK(ashort, s);
s += sizeof(short);
if (!checksum) {
- sv = newSViv((IV)ashort);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)ashort)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)ashort;
#endif
s += SIZE16;
if (!checksum) {
- sv = newSViv((IV)ai16);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)ai16)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)ai16;
DO_BO_UNPACK(aushort, s);
s += sizeof(unsigned short);
if (!checksum) {
- sv = newSViv((UV)aushort);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((UV)aushort)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aushort;
au16 = vtohs(au16);
#endif
if (!checksum) {
- sv = newSViv((UV)au16);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((UV)au16)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)au16;
ai16 = (I16)vtohs((U16)ai16);
#endif
if (!checksum) {
- sv = newSViv((IV)ai16);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)ai16)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)ai16;
DO_BO_UNPACK(aint, i);
s += sizeof(int);
if (!checksum) {
- sv = newSViv((IV)aint);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)aint)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aint;
DO_BO_UNPACK(auint, i);
s += sizeof(unsigned int);
if (!checksum) {
- sv = newSVuv((UV)auint);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv((UV)auint)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)auint;
#endif
s += IVSIZE;
if (!checksum) {
- sv = newSViv(aiv);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv(aiv)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aiv;
#endif
s += UVSIZE;
if (!checksum) {
- sv = newSVuv(auv);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv(auv)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)auv;
DO_BO_UNPACK(along, l);
s += sizeof(long);
if (!checksum) {
- sv = newSViv((IV)along);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)along)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)along;
#endif
s += SIZE32;
if (!checksum) {
- sv = newSViv((IV)ai32);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)ai32)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)ai32;
DO_BO_UNPACK(aulong, l);
s += sizeof(unsigned long);
if (!checksum) {
- sv = newSVuv((UV)aulong);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv((UV)aulong)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aulong;
au32 = vtohl(au32);
#endif
if (!checksum) {
- sv = newSVuv((UV)au32);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv((UV)au32)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)au32;
ai32 = (I32)vtohl((U32)ai32);
#endif
if (!checksum) {
- sv = newSViv((IV)ai32);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSViv((IV)ai32)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)ai32;
/* UTF8_IS_XXXXX not right here - using constant 0x80 */
if ((U8)(*s++) < 0x80) {
bytes = 0;
- sv = newSVuv(auv);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVuv(auv)));
len--;
auv = 0;
}
s += sizeof(Quad_t);
}
if (!checksum) {
- if (aquad >= IV_MIN && aquad <= IV_MAX)
- sv = newSViv((IV)aquad);
- else
- sv = newSVnv((NV)aquad);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal((aquad >= IV_MIN && aquad <= IV_MAX) ?
+ newSViv((IV)aquad) : newSVnv((NV)aquad)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)aquad;
s += sizeof(Uquad_t);
}
if (!checksum) {
- if (auquad <= UV_MAX)
- sv = newSVuv((UV)auquad);
- else
- sv = newSVnv((NV)auquad);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal((auquad <= UV_MAX) ?
+ newSVuv((UV)auquad) : newSVnv((NV)auquad)));
}
else if (checksum > bits_in_uv)
cdouble += (NV)auquad;
DO_BO_UNPACK_N(afloat, float);
s += sizeof(float);
if (!checksum) {
- sv = newSVnv((NV)afloat);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVnv((NV)afloat)));
}
else {
cdouble += afloat;
DO_BO_UNPACK_N(adouble, double);
s += sizeof(double);
if (!checksum) {
- sv = newSVnv((NV)adouble);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVnv((NV)adouble)));
}
else {
cdouble += adouble;
DO_BO_UNPACK_N(anv, NV);
s += NVSIZE;
if (!checksum) {
- sv = newSVnv(anv);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVnv(anv)));
}
else {
cdouble += anv;
DO_BO_UNPACK_N(aldouble, long double);
s += LONG_DOUBLESIZE;
if (!checksum) {
- sv = newSVnv((NV)aldouble);
- PUSHs(sv_2mortal(sv));
+ PUSHs(sv_2mortal(newSVnv((NV)aldouble)));
}
else {cdouble += aldouble;
}