summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-08-02 20:26:07 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-08-02 20:26:07 +0000
commitbf9315bb7b3bbee98610905699a0af5e65da9269 (patch)
treea9b0ced9488293d8ab4f3780c0f1238e3c3d8912 /pp.c
parentabdd5c84f1a598169caec84a2fd2acc62163ef45 (diff)
downloadperl-bf9315bb7b3bbee98610905699a0af5e65da9269.tar.gz
native int pack/unpack fixes (from Spider Boardman
<spider@leggy.zk3.dec.com>) p4raw-id: //depot/perl@3903
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/pp.c b/pp.c
index 18c875bb55..c659e33ec4 100644
--- a/pp.c
+++ b/pp.c
@@ -3608,6 +3608,7 @@ PP(pp_unpack)
if (checksum) {
#if SHORTSIZE != SIZE16
if (natint) {
+ short ashort;
while (len-- > 0) {
COPYNN(s, &ashort, sizeof(short));
s += sizeof(short);
@@ -3634,6 +3635,7 @@ PP(pp_unpack)
EXTEND_MORTAL(len);
#if SHORTSIZE != SIZE16
if (natint) {
+ short ashort;
while (len-- > 0) {
COPYNN(s, &ashort, sizeof(short));
s += sizeof(short);
@@ -3673,6 +3675,7 @@ PP(pp_unpack)
if (checksum) {
#if SHORTSIZE != SIZE16
if (unatint) {
+ unsigned short aushort;
while (len-- > 0) {
COPYNN(s, &aushort, sizeof(unsigned short));
s += sizeof(unsigned short);
@@ -3702,6 +3705,7 @@ PP(pp_unpack)
EXTEND_MORTAL(len);
#if SHORTSIZE != SIZE16
if (unatint) {
+ unsigned short aushort;
while (len-- > 0) {
COPYNN(s, &aushort, sizeof(unsigned short));
s += sizeof(unsigned short);
@@ -3826,6 +3830,7 @@ PP(pp_unpack)
if (checksum) {
#if LONGSIZE != SIZE32
if (natint) {
+ long along;
while (len-- > 0) {
COPYNN(s, &along, sizeof(long));
s += sizeof(long);
@@ -3857,6 +3862,7 @@ PP(pp_unpack)
EXTEND_MORTAL(len);
#if LONGSIZE != SIZE32
if (natint) {
+ long along;
while (len-- > 0) {
COPYNN(s, &along, sizeof(long));
s += sizeof(long);
@@ -3896,6 +3902,7 @@ PP(pp_unpack)
if (checksum) {
#if LONGSIZE != SIZE32
if (unatint) {
+ unsigned long aulong;
while (len-- > 0) {
COPYNN(s, &aulong, sizeof(unsigned long));
s += sizeof(unsigned long);
@@ -3931,6 +3938,7 @@ PP(pp_unpack)
EXTEND_MORTAL(len);
#if LONGSIZE != SIZE32
if (unatint) {
+ unsigned long aulong;
while (len-- > 0) {
COPYNN(s, &aulong, sizeof(unsigned long));
s += sizeof(unsigned long);
@@ -4666,6 +4674,8 @@ PP(pp_pack)
case 's':
#if SHORTSIZE != SIZE16
if (natint) {
+ short ashort;
+
while (len-- > 0) {
fromstr = NEXTFROM;
ashort = SvIV(fromstr);
@@ -4789,6 +4799,8 @@ PP(pp_pack)
case 'L':
#if LONGSIZE != SIZE32
if (natint) {
+ unsigned long aulong;
+
while (len-- > 0) {
fromstr = NEXTFROM;
aulong = SvUV(fromstr);
@@ -4808,6 +4820,8 @@ PP(pp_pack)
case 'l':
#if LONGSIZE != SIZE32
if (natint) {
+ long along;
+
while (len-- > 0) {
fromstr = NEXTFROM;
along = SvIV(fromstr);
@@ -4828,7 +4842,7 @@ PP(pp_pack)
case 'Q':
while (len-- > 0) {
fromstr = NEXTFROM;
- auquad = (Uquad_t)SvIV(fromstr);
+ auquad = (Uquad_t)SvUV(fromstr);
sv_catpvn(cat, (char*)&auquad, sizeof(Uquad_t));
}
break;