summaryrefslogtreecommitdiff
path: root/pp_pack.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2021-07-24 07:25:05 -0600
committerKarl Williamson <khw@cpan.org>2021-07-30 06:11:46 -0600
commita5d875a720d72e69d399dd31389aec2c3a96406c (patch)
treead0ec06c3eb616c9569133a55608c31889da243e /pp_pack.c
parent8fec2c71ce29e2d8e2f7f823f8ad5a1f017b9f6c (diff)
downloadperl-a5d875a720d72e69d399dd31389aec2c3a96406c.tar.gz
pp_pack: Save '&' instrs by casting to U8
Diffstat (limited to 'pp_pack.c')
-rw-r--r--pp_pack.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/pp_pack.c b/pp_pack.c
index 7a02b557c4..60cbfa529b 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -223,7 +223,7 @@ S_mul128(pTHX_ SV *sv, U8 m)
#define TYPE_IS_PACK 0x800
#define TYPE_ENDIANNESS_MASK (TYPE_IS_BIG_ENDIAN|TYPE_IS_LITTLE_ENDIAN)
#define TYPE_MODIFIERS(t) ((t) & ~0xFF)
-#define TYPE_NO_MODIFIERS(t) ((t) & 0xFF)
+#define TYPE_NO_MODIFIERS(t) ((U8) (t))
# define TYPE_ENDIANNESS(t) ((t) & TYPE_ENDIANNESS_MASK)
# define TYPE_NO_ENDIANNESS(t) ((t) & ~TYPE_ENDIANNESS_MASK)
@@ -263,7 +263,7 @@ utf8_to_byte(pTHX_ const char **s, const char *end, I32 datumtype)
Perl_ck_warner(aTHX_ packWARN(WARN_UNPACK),
"Character in '%c' format wrapped in unpack",
(int) TYPE_NO_MODIFIERS(datumtype));
- val &= 0xff;
+ val = (U8) val;
}
*s += retlen;
return (U8)val;
@@ -296,7 +296,7 @@ S_utf8_to_bytes(pTHX_ const char **s, const char *end, const char *buf, SSize_t
} else from += retlen;
if (val >= 0x100) {
bad |= 2;
- val &= 0xff;
+ val = (U8) val;
}
if (UNLIKELY(needs_swap))
*(U8 *)--buf = (U8)val;
@@ -608,7 +608,7 @@ S_next_symbol(pTHX_ tempsym_t* symptr )
patptr++;
} else {
/* We should have found a template code */
- I32 code = *patptr++ & 0xFF;
+ I32 code = (U8) *patptr++;
U32 inherited_modifiers = 0;
if (code == ','){ /* grandfather in commas but with a warning */
@@ -2573,7 +2573,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
if ((-128 > aiv || aiv > 127))
Perl_ck_warner(aTHX_ packWARN(WARN_PACK),
"Character in 'c' format wrapped in pack");
- PUSH_BYTE(utf8, cur, (U8)(aiv & 0xff));
+ PUSH_BYTE(utf8, cur, (U8)aiv);
}
break;
case 'C':
@@ -2588,7 +2588,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
if ((0 > aiv || aiv > 0xff))
Perl_ck_warner(aTHX_ packWARN(WARN_PACK),
"Character in 'C' format wrapped in pack");
- PUSH_BYTE(utf8, cur, (U8)(aiv & 0xff));
+ PUSH_BYTE(utf8, cur, (U8)aiv);
}
break;
case 'W': {
@@ -2628,7 +2628,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist )
}
Perl_ck_warner(aTHX_ packWARN(WARN_PACK),
"Character in 'W' format wrapped in pack");
- auv &= 0xff;
+ auv = (U8) auv;
}
if (cur >= end) {
*cur = '\0';