[apps/code] Do not call interrupt in printText

This commit is contained in:
Léa Saviot
2020-01-20 15:01:47 +01:00
parent 1dacd71acb
commit 3dcb40b5d4
3 changed files with 8 additions and 8 deletions

View File

@@ -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) {

View File

@@ -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

View File

@@ -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();