Wireshark-bugs: [Wireshark-bugs] [Bug 5879] New: Adding support for "destructors" to the ephemer
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5879
Summary: Adding support for "destructors" to the ephemeral
memory manager
Product: Wireshark
Version: SVN
Platform: All
URL: http://www.wireshark.org/lists/wireshark-dev/201105/ms
g00001.html
OS/Version: Windows 7
Status: NEW
Severity: Enhancement
Priority: Low
Component: Wireshark
AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
ReportedBy: dmitrmax@xxxxxxxxx
Max Dmitrichenko <dmitrmax@xxxxxxxxx> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #6268| |review_for_checkin?
Flag| |
Created an attachment (id=6268)
--> (https://bugs.wireshark.org/bugzilla/attachment.cgi?id=6268)
[PATCH] destructor support for ephemeral memory
Build Information:
Version 1.5.2 (SVN Rev Unknown from unknown)
Copyright 1998-2011 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with GTK+ 2.22.1, with GLib 2.26.1, with WinPcap (version
unknown), with libz 1.2.5, without POSIX capabilities, without libpcre, without
SMI, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS 2.10.3, with
Gcrypt 1.4.6, without Kerberos, with GeoIP, with PortAudio V19-devel (built Apr
27 2011), with AirPcap.
Running on 64-bit Windows 7, build 7600, with WinPcap version 4.1.2 (packet.dll
version 4.1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b (20091008),
GnuTLS 2.10.3, Gcrypt 1.4.6, without AirPcap.
Built using Microsoft Visual C++ 10.0 build 40219
--
On the wireshark-dev there was a discussion [1] about a callback mechanism for
ephemeral memory which is called just before ephemeral memory is freed, to
deallocate all additional non-ephemeral resources which the ephemeral memory
references to.
I've implemented such a mechanism. It costs one additional pointer per each
memory chunk allocated. Plus it costs thee additional pointers per allocation,
if
allocation is made from pool in 'use_chunks'-mode when destructor is used,
otherwise it costs nothing.
Callback is supplied as a parameter to allocation function. The only parameter
of the callback is a pointer to the memory which is being freed.
[1] http://www.wireshark.org/lists/wireshark-dev/201105/msg00001.html
--
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.