Re: [PATCH] Be lazy about refreshing the windows in tui_show_frame_info (PR tui/13378)

Patrick Palka
2015-06-30T15:15:55Z

On Tue, Jun 30, 2015 at 11:11 AM, Pedro Alves <palves@redhat.com> wrote:
> On 06/30/2015 03:44 PM, Patrick Palka wrote:
>> On Tue, Jun 30, 2015 at 10:27 AM, Pedro Alves <palves@redhat.com> wrote:
>
>>> Can't element->proc_name be NULL here?
>>
>> Don't think so, since it is an inline array. It's defined as:
>>
>> struct tui_locator_element
>> {
>> ...
>> char full_name[MAX_LOCATOR_ELEMENT_LEN];
>> char proc_name[MAX_LOCATOR_ELEMENT_LEN];
>> }
>>
>> (and tui_alloc_content makes sure to set full_name[0] = proc_name[0] = '\0').
>
> Ah.
>
>>
>>>
>>> For the string fields, do we also need to compare
>>> whether we go from NULL <-> non-NULL ?
>>>
>>> locator_changed_p |= ((fullname == NULL) != (element->full_name == NULL));
>>>
>>> etc.?
>>
>> Yeah, that would be more correct I think. But I think the logic would
>> have to look like "if (procname == NULL) locator_changed_p |= strlen
>> (element->proc_name) != 0;" because proc_name cannot be NULL. When
>> procname is NULL, proc_name[0] gets set to 0.
>>
>
> Or alternatively:
>
> if (fullname == NULL)
> fullname = "";
> locator_changed_p |= strncmp (element->proc_name, procname,
> MAX_LOCATOR_ELEMENT_LEN) != 0;

I'll do that.

> ...
>
> Thanks,
> Pedro Alves
>