diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 2 | ||||
| -rw-r--r-- | src/load.c | 18 | ||||
| -rw-r--r-- | src/range.c | 2 | ||||
| -rw-r--r-- | src/time.c | 2 |
4 files changed, 13 insertions, 11 deletions
diff --git a/src/class.c b/src/class.c index fad476929..a73f42566 100644 --- a/src/class.c +++ b/src/class.c @@ -786,6 +786,8 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v) return mrb_obj_value(mrb->false_class); case MRB_TT_TRUE: return mrb_obj_value(mrb->true_class); + case MRB_TT_MAIN: + return mrb_obj_value(mrb->object_class); case MRB_TT_SYMBOL: case MRB_TT_FIXNUM: case MRB_TT_FLOAT: 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 diff --git a/src/range.c b/src/range.c index 98b9093ef..cdcfcca53 100644 --- a/src/range.c +++ b/src/range.c @@ -415,7 +415,7 @@ range_initialize_copy(mrb_state *mrb, mrb_value copy) if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); } - memcpy(mrb_range_ptr(copy), mrb_range_ptr(src), sizeof(struct RRange)); + *mrb_range_ptr(copy) = *mrb_range_ptr(src); return copy; } diff --git a/src/time.c b/src/time.c index ea8205c7b..09ebea78a 100644 --- a/src/time.c +++ b/src/time.c @@ -559,7 +559,7 @@ mrb_time_initialize_copy(mrb_state *mrb, mrb_value copy) DATA_PTR(copy) = mrb_malloc(mrb, sizeof(struct mrb_time)); DATA_TYPE(copy) = &mrb_time_type; } - memcpy(DATA_PTR(copy), DATA_PTR(src), sizeof(struct mrb_time)); + *(struct mrb_time *)DATA_PTR(copy) = *(struct mrb_time *)DATA_PTR(src); return copy; } |
