summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2012-10-15 13:15:29 +0900
committerMasaki Muranaka <[email protected]>2012-10-15 13:15:29 +0900
commit170d5e7181cef90daa63c39b16ea66f6bd2b17b4 (patch)
treeebc3a92c691e49313f86bed8256924d7433875b7
parent4dcd7cdacd6e19a1c5120fa8366a4887e79da5b6 (diff)
downloadmruby-170d5e7181cef90daa63c39b16ea66f6bd2b17b4.tar.gz
mruby-170d5e7181cef90daa63c39b16ea66f6bd2b17b4.zip
Avoid memcpy() on copying structure.
-rw-r--r--src/load.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/load.c b/src/load.c
index 6c7396407..a960e883a 100644
--- a/src/load.c
+++ b/src/load.c
@@ -111,22 +111,22 @@ load_rite_header(FILE* fp, rite_binary_header* bin_header, unsigned char* hcrc)
if (fread(&file_header, 1, sizeof(file_header), fp) < sizeof(file_header)) {
return MRB_DUMP_READ_FAULT;
}
- memcpy(bin_header->rbfi, file_header.rbfi, sizeof(file_header.rbfi));
+ *bin_header->rbfi = *file_header.rbfi;
if (memcmp(bin_header->rbfi, RITE_FILE_IDENFIFIER, sizeof(bin_header->rbfi)) != 0) {
return MRB_DUMP_INVALID_FILE_HEADER; //File identifier error
}
- memcpy(bin_header->rbfv, file_header.rbfv, sizeof(file_header.rbfv));
+ *bin_header->rbfv = *file_header.rbfv;
if (memcmp(bin_header->rbfv, RITE_FILE_FORMAT_VER, sizeof(bin_header->rbfv)) != 0) {
return MRB_DUMP_INVALID_FILE_HEADER; //File format version error
}
- memcpy(bin_header->risv, file_header.risv, sizeof(file_header.risv));
- memcpy(bin_header->rct, file_header.rct, sizeof(file_header.rct));
- memcpy(bin_header->rcv, file_header.rcv, sizeof(file_header.rcv));
+ *bin_header->risv = *file_header.risv;
+ *bin_header->rct = *file_header.rct;
+ *bin_header->rcv = *file_header.rcv;
hex_to_bin32(bin_header->rbds, file_header.rbds);
hex_to_bin16(bin_header->nirep, file_header.nirep);
hex_to_bin16(bin_header->sirep, file_header.sirep);
- memcpy(bin_header->rsv, file_header.rsv, sizeof(file_header.rsv));
- memcpy(hcrc, file_header.hcrc, sizeof(file_header.hcrc));
+ *bin_header->rsv = *file_header.rsv;
+ *hcrc = *file_header.hcrc;
return MRB_DUMP_OK;
}
@@ -267,7 +267,7 @@ mrb_load_irep(mrb_state *mrb, FILE* fp)
dst = rite_dst;
memset(dst, 0x00, len);
- memcpy(dst, &bin_header, sizeof(rite_binary_header));
+ *(rite_binary_header *)dst = bin_header;
dst += sizeof(rite_binary_header);
dst += hex_to_bin16(dst, hcrc);
@@ -302,7 +302,7 @@ read_rite_header(mrb_state *mrb, unsigned char *bin, rite_binary_header* bin_he
{
uint16_t crc;
- memcpy(bin_header, bin, sizeof(rite_binary_header));
+ *bin_header = *(rite_binary_header *)bin;
bin += sizeof(rite_binary_header);
if (memcmp(bin_header->rbfi, RITE_FILE_IDENFIFIER, sizeof(bin_header->rbfi)) != 0) {
return MRB_DUMP_INVALID_FILE_HEADER; //File identifier error