From 3dcb40b5d4fd956b00a469a9624146c2c02dbf31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Mon, 20 Jan 2020 15:01:47 +0100 Subject: [PATCH] [apps/code] Do not call interrupt in printText --- apps/code/console_controller.cpp | 2 +- python/port/helpers.cpp | 12 ++++++------ python/port/helpers.h | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/code/console_controller.cpp b/apps/code/console_controller.cpp index bfd410986..b545e8de0 100644 --- a/apps/code/console_controller.cpp +++ b/apps/code/console_controller.cpp @@ -386,7 +386,6 @@ void ConsoleController::refreshPrintOutput() { /* printText is called by the Python machine. * The text argument is not always null-terminated. */ void ConsoleController::printText(const char * text, size_t length) { - micropython_port_vm_hook_loop_content(); size_t textCutIndex = firstNewLineCharIndex(text, length); if (textCutIndex >= length) { /* If there is no new line in text, just append it to the output @@ -406,6 +405,7 @@ void ConsoleController::printText(const char * text, size_t length) { assert(textCutIndex == length - 1); appendTextToOutputAccumulationBuffer(text, length-1); flushOutputAccumulationBufferToStore(); + micropython_port_vm_hook_refresh_print(); } void ConsoleController::autoImportScript(Script script, bool force) { diff --git a/python/port/helpers.cpp b/python/port/helpers.cpp index 132effcdd..eb905f91b 100644 --- a/python/port/helpers.cpp +++ b/python/port/helpers.cpp @@ -19,16 +19,16 @@ bool micropython_port_vm_hook_loop() { return false; } - return micropython_port_vm_hook_loop_content(); -} - -bool micropython_port_vm_hook_loop_content() { - assert(MicroPython::ExecutionEnvironment::currentExecutionEnvironment() != nullptr); - MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->refreshPrintOutput(); + micropython_port_vm_hook_refresh_print(); // Check if the user asked for an interruption from the keyboard return micropython_port_interrupt_if_needed(); } +void micropython_port_vm_hook_refresh_print() { + assert(MicroPython::ExecutionEnvironment::currentExecutionEnvironment() != nullptr); + MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->refreshPrintOutput(); +} + bool micropython_port_interruptible_msleep(int32_t delay) { assert(delay >= 0); /* We don't use millis because the systick drifts when changing the HCLK diff --git a/python/port/helpers.h b/python/port/helpers.h index 850a08a94..48e0293a5 100644 --- a/python/port/helpers.h +++ b/python/port/helpers.h @@ -10,7 +10,7 @@ extern "C" { // These methods return true if they have been interrupted bool micropython_port_vm_hook_loop(); -bool micropython_port_vm_hook_loop_content(); +void micropython_port_vm_hook_refresh_print(); bool micropython_port_interruptible_msleep(int32_t delay); bool micropython_port_interrupt_if_needed(); int micropython_port_random();