summaryrefslogtreecommitdiffhomepage
path: root/src/load.c
diff options
context:
space:
mode:
authortake-cheeze <[email protected]>2018-11-02 15:34:35 +0900
committertake-cheeze <[email protected]>2018-11-02 15:47:28 +0900
commit659c680a5bbc04c736544741e2e16c27a3a3f374 (patch)
tree3ceb89617c9331c17a4d1d3aa6f2466407e3b1f2 /src/load.c
parent0419f07915603f74bbd3f6435ffee42cde5eaa5f (diff)
downloadmruby-659c680a5bbc04c736544741e2e16c27a3a3f374.tar.gz
mruby-659c680a5bbc04c736544741e2e16c27a3a3f374.zip
Fix dump and load with endianess
Diffstat (limited to 'src/load.c')
-rw-r--r--src/load.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/src/load.c b/src/load.c
index 54b50b14d..70f5406eb 100644
--- a/src/load.c
+++ b/src/load.c
@@ -83,23 +83,10 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flag
irep->flags |= MRB_ISEQ_NO_FREE;
}
else {
- irep->iseq = (mrb_code *)mrb_malloc(mrb, sizeof(mrb_code) * irep->ilen);
- if (flags & FLAG_BYTEORDER_NATIVE) {
- memcpy(irep->iseq, src, sizeof(uint32_t) * irep->ilen);
- src += sizeof(uint32_t) * irep->ilen;
- }
- else if (flags & FLAG_BYTEORDER_BIG) {
- for (i = 0; i < irep->ilen; i++) {
- irep->iseq[i] = (mrb_code)bin_to_uint32(src); /* iseq */
- src += sizeof(uint32_t);
- }
- }
- else {
- for (i = 0; i < irep->ilen; i++) {
- irep->iseq[i] = (mrb_code)bin_to_uint32l(src); /* iseq */
- src += sizeof(uint32_t);
- }
- }
+ size_t data_len = sizeof(mrb_code) * irep->ilen;
+ irep->iseq = (mrb_code *)mrb_malloc(mrb, data_len);
+ memcpy(irep->iseq, src, data_len);
+ src += data_len;
}
}