From ecb4b4957100b472b052d60777180e01479f6c94 Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Fri, 2 Jun 2023 19:53:32 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#3336=20record-play-movie.cpp=20?= =?utf8?q?=E3=81=A7=E4=BD=BF=E3=82=8F=E3=82=8C=E3=81=A6=E3=81=84=E3=82=8Bm?= =?utf8?q?emcpy()=20=E3=82=92angband=5Fstrcpy()=20=E3=81=AB=E5=B7=AE?= =?utf8?q?=E3=81=97=E6=9B=BF=E3=81=88=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/io/record-play-movie.cpp | 22 +++++++++++----------- src/io/report.cpp | 7 ++++--- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/io/record-play-movie.cpp b/src/io/record-play-movie.cpp index 25e0aaa1b..cf24917e3 100644 --- a/src/io/record-play-movie.cpp +++ b/src/io/record-play-movie.cpp @@ -129,9 +129,9 @@ static errr insert_ringbuf(std::string_view header, std::string_view payload = " /* バッファの終端までに収まる */ if (ring.wptr + all_length + 1 < RINGBUF_SIZE) { - memcpy(ring.buf + ring.wptr, header.data(), header.length()); + std::copy_n(header.begin(), header.length(), ring.buf + ring.wptr); if (!payload.empty()) { - memcpy(ring.buf + ring.wptr + header.length(), payload.data(), payload.length()); + std::copy_n(payload.begin(), payload.length(), ring.buf + ring.wptr + header.length()); } *(ring.buf + ring.wptr + all_length) = '\0'; ring.wptr += all_length + 1; @@ -142,18 +142,18 @@ static errr insert_ringbuf(std::string_view header, std::string_view payload = " int tail = all_length - head; /* 後半 */ if ((int)header.length() <= head) { - memcpy(ring.buf + ring.wptr, header.data(), header.length()); + std::copy_n(header.begin(), header.length(), ring.buf + ring.wptr); head -= header.length(); if (head > 0) { - memcpy(ring.buf + ring.wptr + header.length(), payload.data(), head); + std::copy_n(payload.begin(), head, ring.buf + ring.wptr + header.length()); } - memcpy(ring.buf, payload.data() + head, tail); + std::copy_n(payload.data() + head, tail, ring.buf); } else { - memcpy(ring.buf + ring.wptr, header.data(), head); + std::copy_n(header.begin(), head, ring.buf + ring.wptr); int part = header.length() - head; - memcpy(ring.buf, header.data() + head, part); + std::copy_n(header.data() + head, part, ring.buf); if (tail > part) { - memcpy(ring.buf + part, payload.data(), tail - part); + std::copy_n(payload.begin(), tail - part, ring.buf + part); } } *(ring.buf + tail) = '\0'; @@ -567,7 +567,7 @@ static bool flush_ringbuf_client() #endif update_term_size(x, y, len); (void)((*angband_terms[0]->text_hook)(x, y, len, (byte)col, mesg)); - memcpy(&game_term->scr->c[y][x], mesg, len); + std::copy_n(mesg, len, &game_term->scr->c[y][x]); for (i = x; i < x + len; i++) { game_term->scr->a[y][i] = col; } @@ -580,7 +580,7 @@ static bool flush_ringbuf_client() mesg[i] = '\0'; update_term_size(x, y, len); (void)((*angband_terms[0]->text_hook)(x, y, len, (byte)col, mesg)); - memcpy(&game_term->scr->c[y][x], mesg, len); + std::copy_n(mesg, len, &game_term->scr->c[y][x]); for (i = x; i < x + len; i++) { game_term->scr->a[y][i] = col; } @@ -589,7 +589,7 @@ static bool flush_ringbuf_client() case 's': /* 一文字 */ update_term_size(x, y, 1); (void)((*angband_terms[0]->text_hook)(x, y, 1, (byte)col, mesg)); - memcpy(&game_term->scr->c[y][x], mesg, 1); + std::copy_n(&game_term->scr->c[y][x], 1, mesg); game_term->scr->a[y][x] = col; break; diff --git a/src/io/report.cpp b/src/io/report.cpp index 60d1f967c..7a8103c2c 100644 --- a/src/io/report.cpp +++ b/src/io/report.cpp @@ -32,9 +32,9 @@ #include "util/angband-files.h" #include "view/display-messages.h" #include "world/world.h" +#include #ifdef WORLD_SCORE - #ifdef WINDOWS #define CURL_STATICLIB #endif @@ -113,14 +113,15 @@ static int buf_append(BUF *buf, concptr data, size_t size) return -1; } - memcpy(tmp, buf->data, buf->max_size); + std::copy_n(buf->data, buf->max_size, tmp); free(buf->data); buf->data = tmp; buf->max_size *= 2; } - memcpy(buf->data + buf->size, data, size); + + std::copy_n(data, size, buf->data + buf->size); buf->size += size; return buf->size; -- 2.11.0