Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
5fa5ca40
Commit
5fa5ca40
authored
Jul 05, 2014
by
Paul Sokolovsky
Browse files
binary: Factor out mp_binary_set_int().
parent
539681ff
Changes
2
Hide whitespace changes
Inline
Side-by-side
py/binary.c
View file @
5fa5ca40
...
@@ -177,6 +177,23 @@ mp_obj_t mp_binary_get_val(char struct_type, char val_type, byte **ptr) {
...
@@ -177,6 +177,23 @@ mp_obj_t mp_binary_get_val(char struct_type, char val_type, byte **ptr) {
}
}
}
}
void
mp_binary_set_int
(
uint
val_sz
,
bool
big_endian
,
byte
*
p
,
byte
*
val_ptr
)
{
int
in_delta
,
out_delta
;
if
(
big_endian
)
{
in_delta
=
-
1
;
out_delta
=
1
;
val_ptr
+=
val_sz
-
1
;
}
else
{
in_delta
=
out_delta
=
1
;
}
for
(
uint
i
=
val_sz
;
i
>
0
;
i
--
)
{
*
p
=
*
val_ptr
;
p
+=
out_delta
;
val_ptr
+=
in_delta
;
}
}
void
mp_binary_set_val
(
char
struct_type
,
char
val_type
,
mp_obj_t
val_in
,
byte
**
ptr
)
{
void
mp_binary_set_val
(
char
struct_type
,
char
val_type
,
mp_obj_t
val_in
,
byte
**
ptr
)
{
byte
*
p
=
*
ptr
;
byte
*
p
=
*
ptr
;
uint
align
;
uint
align
;
...
@@ -206,22 +223,7 @@ void mp_binary_set_val(char struct_type, char val_type, mp_obj_t val_in, byte **
...
@@ -206,22 +223,7 @@ void mp_binary_set_val(char struct_type, char val_type, mp_obj_t val_in, byte **
val
=
mp_obj_get_int
(
val_in
);
val
=
mp_obj_get_int
(
val_in
);
}
}
int
in_delta
,
out_delta
;
mp_binary_set_int
(
MIN
(
size
,
sizeof
(
val
)),
struct_type
==
'>'
,
p
,
in
);
uint
val_sz
=
MIN
(
size
,
sizeof
(
val
));
if
(
struct_type
==
'>'
)
{
in_delta
=
-
1
;
out_delta
=
1
;
in
+=
val_sz
-
1
;
}
else
{
in_delta
=
out_delta
=
1
;
}
for
(
uint
i
=
val_sz
;
i
>
0
;
i
--
)
{
*
p
=
*
in
;
p
+=
out_delta
;
in
+=
in_delta
;
}
}
}
void
mp_binary_set_val_array
(
char
typecode
,
void
*
p
,
int
index
,
mp_obj_t
val_in
)
{
void
mp_binary_set_val_array
(
char
typecode
,
void
*
p
,
int
index
,
mp_obj_t
val_in
)
{
...
...
py/binary.h
View file @
5fa5ca40
...
@@ -35,3 +35,4 @@ void mp_binary_set_val_array_from_int(char typecode, void *p, int index, mp_int_
...
@@ -35,3 +35,4 @@ void mp_binary_set_val_array_from_int(char typecode, void *p, int index, mp_int_
mp_obj_t
mp_binary_get_val
(
char
struct_type
,
char
val_type
,
byte
**
ptr
);
mp_obj_t
mp_binary_get_val
(
char
struct_type
,
char
val_type
,
byte
**
ptr
);
void
mp_binary_set_val
(
char
struct_type
,
char
val_type
,
mp_obj_t
val_in
,
byte
**
ptr
);
void
mp_binary_set_val
(
char
struct_type
,
char
val_type
,
mp_obj_t
val_in
,
byte
**
ptr
);
mp_int_t
mp_binary_get_int
(
uint
size
,
bool
is_signed
,
bool
big_endian
,
byte
*
p
);
mp_int_t
mp_binary_get_int
(
uint
size
,
bool
is_signed
,
bool
big_endian
,
byte
*
p
);
void
mp_binary_set_int
(
uint
val_sz
,
bool
big_endian
,
byte
*
p
,
byte
*
val_ptr
);
Write
Preview
Supports
Markdown
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