Skip to content

Commit 0f45bd8

Browse files
committed
doio.c Change a variable from char* to U8*
This removes 6 casts and adds 1, resulting in cleaner looking code.
1 parent 48972dd commit 0f45bd8

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

doio.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2214,36 +2214,37 @@ Perl_do_print(pTHX_ SV *sv, PerlIO *fp)
22142214
else {
22152215
STRLEN len;
22162216
/* Do this first to trigger any overloading. */
2217-
const char *tmps = SvPV_const(sv, len);
2217+
const U8 *tmps = (const U8 *) SvPV_const(sv, len);
22182218
U8 *tmpbuf = NULL;
2219+
22192220
bool happy = TRUE;
22202221

22212222
if (PerlIO_isutf8(fp)) { /* If the stream is utf8 ... */
22222223
if (!SvUTF8(sv)) { /* Convert to utf8 if necessary */
22232224
/* We don't modify the original scalar. */
2224-
tmpbuf = bytes_to_utf8((const U8*) tmps, &len);
2225-
tmps = (char *) tmpbuf;
2225+
tmpbuf = bytes_to_utf8(tmps, &len);
2226+
tmps = tmpbuf;
22262227
}
22272228
else if (ckWARN4_d(WARN_UTF8, WARN_SURROGATE, WARN_NON_UNICODE, WARN_NONCHAR)) {
2228-
(void) check_utf8_print((const U8*) tmps, len);
2229+
(void) check_utf8_print(tmps, len);
22292230
}
22302231
} /* else stream isn't utf8 */
22312232
else if (DO_UTF8(sv)) { /* But if is utf8 internally, attempt to
22322233
convert to bytes */
22332234
STRLEN tmplen = len;
22342235
bool utf8 = TRUE;
2235-
U8 * const result = bytes_from_utf8((const U8*) tmps, &tmplen, &utf8);
2236+
U8 * const result = bytes_from_utf8(tmps, &tmplen, &utf8);
22362237
if (!utf8) {
22372238

22382239
/* Here, succeeded in downgrading from utf8. Set up to below
22392240
* output the converted value */
22402241
tmpbuf = result;
2241-
tmps = (char *) tmpbuf;
2242+
tmps = tmpbuf;
22422243
len = tmplen;
22432244
}
22442245
else { /* Non-utf8 output stream, but string only representable in
22452246
utf8 */
2246-
assert((char *)result == tmps);
2247+
assert(result == tmps);
22472248
Perl_ck_warner_d(aTHX_ packWARN(WARN_UTF8),
22482249
"Wide character in %s",
22492250
PL_op ? OP_DESC(PL_op) : "print"

0 commit comments

Comments
 (0)