Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mruby
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
mruby
Commits
659c680a
Unverified
Commit
659c680a
authored
Nov 02, 2018
by
take-cheeze
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix dump and load with endianess
parent
0419f079
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
37 deletions
+6
-37
src/dump.c
src/dump.c
+2
-20
src/load.c
src/load.c
+4
-17
No files found.
src/dump.c
View file @
659c680a
...
...
@@ -85,26 +85,8 @@ write_iseq_block(mrb_state *mrb, mrb_irep *irep, uint8_t *buf, uint8_t flags)
cur
+=
uint32_to_bin
(
irep
->
ilen
,
cur
);
/* number of opcode */
cur
+=
write_padding
(
cur
);
switch
(
flags
&
DUMP_ENDIAN_NAT
)
{
case
DUMP_ENDIAN_BIG
:
if
(
bigendian_p
())
goto
native
;
for
(
iseq_no
=
0
;
iseq_no
<
irep
->
ilen
;
iseq_no
++
)
{
cur
+=
uint32_to_bin
(
irep
->
iseq
[
iseq_no
],
cur
);
/* opcode */
}
break
;
case
DUMP_ENDIAN_LIL
:
if
(
!
bigendian_p
())
goto
native
;
for
(
iseq_no
=
0
;
iseq_no
<
irep
->
ilen
;
iseq_no
++
)
{
cur
+=
uint32l_to_bin
(
irep
->
iseq
[
iseq_no
],
cur
);
/* opcode */
}
break
;
native:
case
DUMP_ENDIAN_NAT
:
memcpy
(
cur
,
irep
->
iseq
,
irep
->
ilen
*
sizeof
(
mrb_code
));
cur
+=
irep
->
ilen
*
sizeof
(
mrb_code
);
break
;
}
memcpy
(
cur
,
irep
->
iseq
,
irep
->
ilen
*
sizeof
(
mrb_code
));
cur
+=
irep
->
ilen
*
sizeof
(
mrb_code
);
return
cur
-
buf
;
}
...
...
src/load.c
View file @
659c680a
...
...
@@ -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
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment