Skip to content

Commit

Permalink
Temp fix for UART text box BusFault?
Browse files Browse the repository at this point in the history
Attempts to fix BusFault with huge amount of fast data
Still have weird hangs in some cases with huge amounts of data
But this fixes crashes atleast
Weird thing is that these hangs are not full, CLI keeps working for a few seconds
  • Loading branch information
Willy-JL committed Mar 22, 2024
1 parent 6fb382a commit 04ecef4
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion applications/services/gui/modules/text_box.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,12 @@ static void text_box_insert_endline(Canvas* canvas, TextBoxModel* model) {
uint8_t lines_on_screen = 56 / canvas_current_font_height(canvas);
if(model->focus == TextBoxFocusEnd && line_num > lines_on_screen) {
// Set text position to 5th line from the end
const char* end = model->text + furi_string_size(model->text_formatted);
// TODO: Find proper fix, this prevents BusFault but hangs GUI after another while? makes no sense
for(uint8_t i = 0; i < line_num - lines_on_screen; i++) {
while(*model->text_pos++ != '\n') {
// Debugger shows it's stuck in this loop, but it also shows the while condition is false??
while(model->text_pos < end) {
if(*model->text_pos++ == '\n') break;
}
}
model->scroll_num = line_num - (lines_on_screen - 1);
Expand Down

0 comments on commit 04ecef4

Please sign in to comment.