Skip to content

Commit f1a54e8

Browse files
committed
Fix crash after inactive
1 parent c91801b commit f1a54e8

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

Console.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,9 @@ void Console::draw_cur_char(){
635635

636636
void Console::draw_all(){
637637
vm_graphic_fill_rect(scr_buf, 0, 0, scr_w, scr_h, main_color, main_color);
638+
for (int i = 0; i < terminal_h; ++i)
639+
for (int j = 0; j < terminal_w; ++j)
640+
draw_xy_char(j, i);
638641
}
639642

640643

main.c

+12-6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ VMFILE vram;
5151

5252
extern fifo_t serial_in;
5353

54+
int active = 0;
5455

5556

5657
typedef VMINT(*vm_get_sym_entry_t)(char* symbol);
@@ -233,8 +234,8 @@ void err_str(const char* str){
233234

234235
UInt32 rtcCurTime(void){
235236
VMUINT ret;
236-
//vm_get_utc(&ret); // Get time since Epoch
237-
return (UInt32)vm_get_tick_count();
237+
vm_get_utc(&ret); // Get time since Epoch
238+
return ret;//(UInt32)vm_get_tick_count();
238239
}
239240

240241
void* emu_alloc(_UNUSED_ UInt32 size){
@@ -252,6 +253,7 @@ void handle_sysevt(VMINT message, VMINT param) {
252253
switch (message) {
253254
case VM_MSG_CREATE:
254255
case VM_MSG_ACTIVE:
256+
active = 1;
255257
layer_hdls[0] = vm_graphic_create_layer(0, 0, scr_w, scr_h, -1);
256258
layer_hdls[1] = vm_graphic_create_layer(0, 0, scr_w, scr_h, tr_color);
257259

@@ -378,24 +380,28 @@ void handle_sysevt(VMINT message, VMINT param) {
378380
break;
379381

380382
case VM_MSG_INACTIVE:
383+
active = 0;
381384
vm_switch_power_saving_mode(turn_on_mode);
382385
if( layer_hdls[0] != -1 ){
383-
vm_graphic_delete_layer(layer_hdls[0]);
384386
vm_graphic_delete_layer(layer_hdls[1]);
387+
vm_graphic_delete_layer(layer_hdls[0]);
388+
layer_hdls[0] = -1;
385389
}
386390

387391
// Delete timers
388392
if(soc_cycle_timer_id != -1)
389393
vm_delete_timer(soc_cycle_timer_id);
394+
soc_cycle_timer_id = -1;
390395
if(screen_timer_id!=-1)
391396
vm_delete_timer(screen_timer_id);
397+
screen_timer_id = -1;
392398

393399
// Commit data to file
394-
vm_file_commit(sd);
400+
//vm_file_commit(sd);
395401

396402
// Close file handlers
397-
vm_file_close(sd);
398-
vm_file_close(vram);
403+
//vm_file_close(sd);
404+
//vm_file_close(vram);
399405
break;
400406
case VM_MSG_QUIT:
401407
if( layer_hdls[0] != -1 ){

0 commit comments

Comments
 (0)