[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Clear out gfxterm's virtual text_buffer - fixes junk at end
From: |
Robert Millan |
Subject: |
Re: [PATCH] Clear out gfxterm's virtual text_buffer - fixes junk at end of lines |
Date: |
Wed, 22 Jul 2009 19:27:09 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Sat, Jul 18, 2009 at 03:39:00PM -0700, Joe Auricchio wrote:
>
> On 18 Jul, 2009, at 11:58 , Robert Millan wrote:
>> On Sat, Jul 18, 2009 at 12:15:04AM -0700, Joe Auricchio wrote:
>>>
>>> This fixes a 100% reproducible and very annoying bug I've found:
>>> Switch
>>> to gfxterm and until your clear the screen or scroll, the last
>>> position
>>> of every line has a random junk character in random foreground and
>>> background color. I believe the root cause is that the
>>> virtual_screen's
>>> text_buffer is uninitialized; as the cursor reaches a new position,
>>> the
>>> uninitialized junk data is drawn to the screen. Really, the entire
>>> screen
>>> is junk, but it's never marked dirty so it's never drawn. So let's
>>> just
>>> clear out the whole text_buffer when we set up the screen.
>>
>> But grub_virtual_screen_free() already set the whole structure to 0 at
>> the
>> beginning of grub_virtual_screen_setup().
>>
>> Does a zero-filled screen result in garbage, or is something else
>> overwriting
>> it?
>
> grub_virtual_screen_free sets all of virtual_screen to 0, but not
> virtual_screen.text_buffer. text_buffer just gets grub_freed. Later in
> grub_virtual_screen_setup, a new text_buffer is grub_malloced. It's this
> new text_buffer that my patch clears out.
So perhaps this can be solved simpler by replacing grub_malloc with
grub_zalloc ?
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
Re: [PATCH] Clear out gfxterm's virtual text_buffer - fixes junk at end of lines, Vladimir 'phcoder' Serbinenko, 2009/07/20