File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed
ports/espressif/common-hal/pulseio Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,12 @@ STATIC void update_internal_buffer(pulseio_pulsein_obj_t *self) {
41
41
length /= 4 ;
42
42
for (size_t i = 0 ; i < length ; i ++ ) {
43
43
uint16_t pos = (self -> start + self -> len ) % self -> maxlen ;
44
- self -> buffer [pos ] = items [i ].duration0 * 3 ;
44
+ uint32_t val = items [i ].duration0 * 3 ;
45
+ // make sure the value returned does not exceed the max uint16 value.
46
+ if (val > 65535 ) {
47
+ val = 65535 ;
48
+ }
49
+ self -> buffer [pos ] = (uint16_t )val ;
45
50
if (self -> len < self -> maxlen ) {
46
51
self -> len ++ ;
47
52
} else {
@@ -50,7 +55,11 @@ STATIC void update_internal_buffer(pulseio_pulsein_obj_t *self) {
50
55
// Check if second item exists
51
56
if (items [i ].duration1 ) {
52
57
pos = (self -> start + self -> len ) % self -> maxlen ;
53
- self -> buffer [pos ] = items [i ].duration1 * 3 ;
58
+ val = items [i ].duration1 * 3 ;
59
+ if (val > 65535 ) {
60
+ val = 65535 ;
61
+ }
62
+ self -> buffer [pos ] = (uint16_t )val ;
54
63
if (self -> len < self -> maxlen ) {
55
64
self -> len ++ ;
56
65
} else {
You can’t perform that action at this time.
0 commit comments