http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2453
Márton Németh <nm127@xxxxxxxxxxx> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #1738| |review_for_checkin?
Flag| |
--- Comment #13 from Márton Németh <nm127@xxxxxxxxxxx> 2008-04-23 09:59:21 GMT ---
Created an attachment (id=1738)
--> (http://bugs.wireshark.org/bugzilla/attachment.cgi?id=1738)
remove write
It seems that there is some problem with the functions
clear_outstanding_tvbs(), clear_outstanding_trees() and
clear_outstanding_pinfos(). These functions looks like the same, they use the
g_ptr_array_remove_index_fast() function to remove a pointer from the pointer
array called "outstanding_stuff".
This pointer is added to the "outstanding_stuff" pointer array by the
g_ptr_array_add() function. The pointer itself is created by the
lua_newuserdata() function. The lua_newuserdata() function is called from the
macros PUSH_TVB, PUSH_TVBRANGE, PUSH_TREEITEM, PUSH_COLUMN and PUSH_COLUMNS.
What is not clear for me is that why should we collect these pointers if Lua
will gc the userdata anyway?
Documentation:
g_ptr_array_remove_index_fast():
http://library.gnome.org/devel/glib/stable/glib-Pointer-Arrays.html#g-ptr-array-remove-index-fast
g_ptr_array_add():
http://library.gnome.org/devel/glib/stable/glib-Pointer-Arrays.html#g-ptr-array-add
lua_newuserdata(): http://www.lua.org/manual/5.1/manual.html#lua_newuserdata
---
After applying this patch the crash is not there anymore.
--
Configure bugmail: http://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.