On Jun 5, 2009, at 4:29 PM, didier wrote:

> Le samedi 06 juin 2009 à 00:26 +0200, Sake Blok a écrit :
>> On Fri, Jun 05, 2009 at 11:55:02PM +0200, didier wrote:
>>> Le dimanche 31 mai 2009 à 11:56 +0200, Sake Blok a écrit :
>>>> Hi Jaap (& list),
>>>>
>>>> As the "father" of the "copy as filter" functionality, I would  
>>>> vote for it
>>>> to be present all the time in the packet details pane (where I  
>>>> use it most).
>>>> Keeping track of all possible filters for the packet list pane  
>>>> seems like an
>>>> overkill to me and could be made optional to save memory. Or it  
>>>> should be
>>>> implemented in a way where it will dynamically be generated. For  
>>>> 1.2.0 I
>>>> would suggest to just revert the implemented memory-consuming  
>>>> patch and
>>>> disable the functionality in the packet-list. Then we can decide  
>>>> later to
>>>> make it either optional of write code that dynamically generate  
>>>> the filter
>>>> string on use (if that is at all possible).
>>>
>>> Anyone remember why it was changed from dynamically generate?
>>> The SVN log msg doesn't make sense to me.

Presumably the log is

   r27396 | jake | 2009-02-08 23:10:46 -0800 (Sun, 08 Feb 2009) | 7  
lines

   Make "Copy as Filter" on the packet list actually work.
   Up till now every packet in the packet list got a copy of the  
pointer to the filter expressions for
   the last packets' columns. Hence any 'Copy as Filter" on a column  
got the expression of the last
   packet in the packet list. Instead every packet needs to get a  
pointer to the filter expressions
   for its own columns. This requires making a copy of the filter  
expressions themselves.

   Since this is a bug in 1.0 as well the GLIB1 code is provided for  
backporting, which can later be dropped from the development tree.

>> IIRC, the filter strings were not generated dynamically, they were
>> generated while building the packet-list, resulting in having the
>> filters for the last row to be the filters for all rows. But my  
>> memory
>> might not be totally accurate ;-)
> It was generated, cf svn  24511 but:
> 1- didn't work with col_custom
> 2- use ep_alloc, a bit dangerous?
>
> attached a modified version which work for me.

This would presumably be combined with a complete removal of the  
col_expr field from the frame_data structure, right?

Actually, get_filter_from_packet_list_row_and_column() (I renamed the  
function from get_text_from_packet_list() to indicate in more detail  
what it does - it doesn't fetch arbitrary text, it fetches a filter  
expression) is called only by match_selected_plist_cb(), which passes  
it to match_selected_cb_do(), which always uses it to make a copy, so  
if we just had get_filter_from_packet_list_row_and_column() create the  
string with g_strdup_printf() and changed match_selected_plist_cb() to

        char *filter_text;

        filter_text = get_filter_from_packet_list_row_and_column(data);
        match_selected_cb_do(data, action, filter_text);
        g_free(filter_text);

(or incorporated get_filter_from_packet_list_row_and_column() into  
match_selected_plist_cb()), that would mean that we wouldn't have to  
worry about ephemeral vs. per-session strings.

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to