… | |
… | |
236 | scr_alloc (); |
236 | scr_alloc (); |
237 | |
237 | |
238 | if (!prev_row_buf) |
238 | if (!prev_row_buf) |
239 | { |
239 | { |
240 | /* |
240 | /* |
241 | * first time called so just malloc everything: don't rely on realloc |
241 | * first time called (or after scr_release) so just malloc everything: don't rely on realloc |
242 | */ |
242 | */ |
243 | top_row = 0; |
243 | top_row = 0; |
244 | term_start = 0; |
244 | term_start = 0; |
245 | |
245 | |
246 | memset (charsets, 'B', sizeof (charsets)); |
246 | memset (charsets, 'B', sizeof (charsets)); |
… | |
… | |
426 | tt_winch (); |
426 | tt_winch (); |
427 | |
427 | |
428 | HOOK_INVOKE ((this, HOOK_RESET, DT_END)); |
428 | HOOK_INVOKE ((this, HOOK_RESET, DT_END)); |
429 | } |
429 | } |
430 | |
430 | |
431 | /* ------------------------------------------------------------------------- */ |
|
|
432 | /* |
|
|
433 | * Free everything. That way malloc debugging can find leakage. |
|
|
434 | */ |
|
|
435 | void ecb_cold |
431 | void ecb_cold |
436 | rxvt_term::scr_release () NOTHROW |
432 | rxvt_term::scr_release () NOTHROW |
437 | { |
433 | { |
438 | free (chunk); |
434 | free (chunk); chunk = 0; row_buf = 0; |
439 | free (tabs); |
435 | free (tabs); tabs = 0; |
440 | } |
436 | } |
441 | |
437 | |
442 | /* ------------------------------------------------------------------------- */ |
438 | /* ------------------------------------------------------------------------- */ |
443 | /* |
439 | /* |
444 | * Hard/Soft reset |
440 | * Hard/Soft reset |
… | |
… | |
446 | void ecb_cold |
442 | void ecb_cold |
447 | rxvt_term::scr_poweron () |
443 | rxvt_term::scr_poweron () |
448 | { |
444 | { |
449 | scr_release (); |
445 | scr_release (); |
450 | |
446 | |
451 | row_buf = 0; |
|
|
452 | tabs = 0; |
|
|
453 | prev_nrow = prev_ncol = 0; |
447 | prev_nrow = prev_ncol = 0; |
454 | rvideo_mode = false; |
448 | rvideo_mode = false; |
455 | scr_soft_reset (); |
449 | scr_soft_reset (); |
456 | scr_reset (); |
450 | scr_reset (); |
457 | |
451 | |