Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
71e9bfa2
Commit
71e9bfa2
authored
Apr 18, 2014
by
Damien George
Browse files
py: Add mp_binary_set_val_array_from_int, to store an int directly.
parent
b11b85ad
Changes
2
Hide whitespace changes
Inline
Side-by-side
py/binary.c
View file @
71e9bfa2
...
...
@@ -151,11 +151,21 @@ mp_obj_t mp_binary_get_val(char struct_type, char val_type, byte **ptr) {
}
void
mp_binary_set_val_array
(
char
typecode
,
void
*
p
,
int
index
,
mp_obj_t
val_in
)
{
machine_int_t
val
=
0
;
if
(
MP_OBJ_IS_INT
(
val_in
))
{
val
=
mp_obj_int_get
(
val_in
);
switch
(
typecode
)
{
#if MICROPY_ENABLE_FLOAT
case
'f'
:
((
float
*
)
p
)[
index
]
=
mp_obj_float_get
(
val_in
);
break
;
case
'd'
:
((
double
*
)
p
)[
index
]
=
mp_obj_float_get
(
val_in
);
break
;
#endif
default:
mp_binary_set_val_array_from_int
(
typecode
,
p
,
index
,
mp_obj_get_int
(
val_in
));
}
}
void
mp_binary_set_val_array_from_int
(
char
typecode
,
void
*
p
,
int
index
,
machine_int_t
val
)
{
switch
(
typecode
)
{
case
'b'
:
((
int8_t
*
)
p
)[
index
]
=
val
;
...
...
@@ -187,10 +197,10 @@ void mp_binary_set_val_array(char typecode, void *p, int index, mp_obj_t val_in)
#endif
#if MICROPY_ENABLE_FLOAT
case
'f'
:
((
float
*
)
p
)[
index
]
=
mp_obj_float_get
(
val_in
)
;
((
float
*
)
p
)[
index
]
=
val
;
break
;
case
'd'
:
((
double
*
)
p
)[
index
]
=
mp_obj_float_get
(
val_in
)
;
((
double
*
)
p
)[
index
]
=
val
;
break
;
#endif
}
...
...
py/binary.h
View file @
71e9bfa2
...
...
@@ -6,3 +6,4 @@ int mp_binary_get_size(char typecode);
mp_obj_t
mp_binary_get_val_array
(
char
typecode
,
void
*
p
,
int
index
);
mp_obj_t
mp_binary_get_val
(
char
struct_type
,
char
val_type
,
byte
**
ptr
);
void
mp_binary_set_val_array
(
char
typecode
,
void
*
p
,
int
index
,
mp_obj_t
val_in
);
void
mp_binary_set_val_array_from_int
(
char
typecode
,
void
*
p
,
int
index
,
machine_int_t
val
);
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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