mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
gst/pygstminiobject.c: Comments to better track the creation/destruction of PyGstMiniObject
Original commit message from CVS: * gst/pygstminiobject.c: (pygstminiobject_register_wrapper), (pygstminiobject_new), (pygstminiobject_dealloc): Comments to better track the creation/destruction of PyGstMiniObject Fixed naming (gst.GstMiniObject => gst.MiniObject) * testsuite/python.supp: Updated python specific valgrind suppressions to latest version and added x86_64 cases * testsuite/gstpython.supp: Series of suppressions for errors/leaks not solvable within gst-python * testsuite/Makefile.am: Added gstpython.supp
This commit is contained in:
parent
48057a6d7c
commit
6858dbb214
6 changed files with 250 additions and 14 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
2005-10-07 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* gst/pygstminiobject.c: (pygstminiobject_register_wrapper),
|
||||
(pygstminiobject_new), (pygstminiobject_dealloc):
|
||||
Comments to better track the creation/destruction of PyGstMiniObject
|
||||
Fixed naming (gst.GstMiniObject => gst.MiniObject)
|
||||
* testsuite/python.supp:
|
||||
Updated python specific valgrind suppressions to latest version and
|
||||
added x86_64 cases
|
||||
* testsuite/gstpython.supp:
|
||||
Series of suppressions for errors/leaks not solvable within gst-python
|
||||
* testsuite/Makefile.am:
|
||||
Added gstpython.supp
|
||||
|
||||
2005-10-07 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* configure.ac:
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit fb4bd52a0a6e882bd8eb0ca836edd94d3fcaea42
|
||||
Subproject commit eb0dd118a086dd4aa405d3871131839d81306245
|
|
@ -145,6 +145,8 @@ pygstminiobject_register_wrapper (PyObject *self)
|
|||
GST_DEBUG ("inserting self %p in the table for object %p", self, obj);
|
||||
state = pyg_gil_state_ensure ();
|
||||
g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self);
|
||||
GST_DEBUG ("There are now %d elements in the hash table",
|
||||
g_hash_table_size (_miniobjs));
|
||||
pyg_gil_state_release (state);
|
||||
}
|
||||
|
||||
|
@ -205,6 +207,8 @@ pygstminiobject_new (GstMiniObject *obj)
|
|||
GST_DEBUG ("inserting self %p in the table for object %p", self, obj);
|
||||
state = pyg_gil_state_ensure ();
|
||||
g_hash_table_insert (_miniobjs, (gpointer) obj, (gpointer) self);
|
||||
GST_DEBUG ("There are now %d elements in the hash table",
|
||||
g_hash_table_size (_miniobjs));
|
||||
pyg_gil_state_release (state);
|
||||
|
||||
}
|
||||
|
@ -225,6 +229,8 @@ pygstminiobject_dealloc(PyGstMiniObject *self)
|
|||
GST_DEBUG ("removing self %p from the table for object %p", self,
|
||||
self->obj);
|
||||
g_assert (g_hash_table_remove (_miniobjs, (gpointer) self->obj));
|
||||
GST_DEBUG ("There are now %d elements in the hash table",
|
||||
g_hash_table_size (_miniobjs));
|
||||
gst_mini_object_unref(self->obj);
|
||||
}
|
||||
GST_DEBUG ("setting self %p -> obj to NULL", self);
|
||||
|
@ -367,7 +373,7 @@ static PyGetSetDef pygstminiobject_getsets[] = {
|
|||
PyTypeObject PyGstMiniObject_Type = {
|
||||
PyObject_HEAD_INIT(NULL)
|
||||
0, /* ob_size */
|
||||
"gst.GstMiniObject", /* tp_name */
|
||||
"gst.MiniObject", /* tp_name */
|
||||
sizeof(PyGstMiniObject), /* tp_basicsize */
|
||||
0, /* tp_itemsize */
|
||||
/* methods */
|
||||
|
|
|
@ -40,7 +40,7 @@ check-verbose: testhelper.la
|
|||
@VERBOSE=yes PYTHONPATH=$(top_builddir):$(top_builddir)/gst/.libs:`pwd`:$(top_srcdir):$(PYTHONPATH) $(PYTHON) $(srcdir)/runtests.py
|
||||
@rm -fr *.pyc
|
||||
|
||||
EXTRA_DIST = $(TESTS) common.py runtests.py test-object.h python.supp
|
||||
EXTRA_DIST = $(TESTS) common.py runtests.py test-object.h python.supp gstpython.supp
|
||||
|
||||
if HAVE_VALGRIND
|
||||
check-valgrind:
|
||||
|
@ -52,6 +52,7 @@ endif
|
|||
|
||||
GSTSUPP = $(top_srcdir)/common/gst.supp
|
||||
PYTHONSUPP = $(top_srcdir)/testsuite/python.supp
|
||||
GSTPYTHONSUPP = $(top_srcdir)/testsuite/gstpython.supp
|
||||
|
||||
# valgrind any given test_x.py by running make test_x.valgrind
|
||||
%.valgrind: %
|
||||
|
@ -59,6 +60,7 @@ PYTHONSUPP = $(top_srcdir)/testsuite/python.supp
|
|||
$(VALGRIND_PATH) -q \
|
||||
--suppressions=$(GSTSUPP) \
|
||||
--suppressions=$(PYTHONSUPP) \
|
||||
--suppressions=$(GSTPYTHONSUPP) \
|
||||
--tool=memcheck --leak-check=yes --trace-children=yes \
|
||||
$(PYTHON) \
|
||||
$* 2>&1 | tee valgrind.log
|
||||
|
|
80
testsuite/gstpython.supp
Normal file
80
testsuite/gstpython.supp
Normal file
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
pthread leak
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:allocate_dtv
|
||||
fun:_dl_allocate_tls*
|
||||
}
|
||||
|
||||
{
|
||||
pthread leak 2
|
||||
Memcheck:Leak
|
||||
fun:memalign
|
||||
fun:_dl_allocate_tls*
|
||||
}
|
||||
|
||||
{
|
||||
popt leak
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:nss_parse_service_list
|
||||
fun:__nss_database_lookup
|
||||
obj:*
|
||||
obj:*
|
||||
fun:getpwuid_r@@GLIBC_2.2.5
|
||||
fun:g_get_any_init_do
|
||||
fun:g_get_home_dir
|
||||
fun:init_post
|
||||
fun:init_popt_callback
|
||||
}
|
||||
|
||||
{
|
||||
pygobject init leak
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
fun:g_malloc0
|
||||
fun:type_node_*
|
||||
fun:type_node_*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:g_type_init*
|
||||
fun:initgobject
|
||||
}
|
||||
|
||||
{
|
||||
borked pthread creation
|
||||
Memcheck:Param
|
||||
write(buf)
|
||||
fun:__pthread_initialize_manager
|
||||
fun:pthread_create@@GLIBC_2.2.5
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:gst_task_start
|
||||
}
|
||||
|
||||
{
|
||||
borked pthread creation 2
|
||||
Memcheck:Param
|
||||
write(buf)
|
||||
fun:pthread_create@@GLIBC_2.2.5
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:gst_task_start
|
||||
}
|
||||
|
||||
{
|
||||
memory loss when creating thread from gst_task_start
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:__pthread_initialize_manager
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:*
|
||||
fun:gst_task_start
|
||||
}
|
|
@ -28,6 +28,12 @@
|
|||
fun:Py_ADDRESS_IN_RANGE
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
|
||||
Memcheck:Value8
|
||||
fun:Py_ADDRESS_IN_RANGE
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
|
||||
Memcheck:Cond
|
||||
|
@ -40,12 +46,24 @@
|
|||
fun:PyObject_Free
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
|
||||
Memcheck:Addr8
|
||||
fun:PyObject_Free
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 4
|
||||
Memcheck:Value4
|
||||
fun:PyObject_Free
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
|
||||
Memcheck:Value8
|
||||
fun:PyObject_Free
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
|
||||
Memcheck:Cond
|
||||
|
@ -58,6 +76,12 @@
|
|||
fun:PyObject_Realloc
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
|
||||
Memcheck:Addr8
|
||||
fun:PyObject_Realloc
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Invalid read of size 4
|
||||
Memcheck:Value4
|
||||
|
@ -65,9 +89,15 @@
|
|||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
|
||||
Memcheck:Cond
|
||||
fun:PyObject_Realloc
|
||||
ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64)
|
||||
Memcheck:Value8
|
||||
fun:PyObject_Realloc
|
||||
}
|
||||
|
||||
{
|
||||
ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
|
||||
Memcheck:Cond
|
||||
fun:PyObject_Realloc
|
||||
}
|
||||
|
||||
###
|
||||
|
@ -84,6 +114,118 @@
|
|||
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in libc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Addr8
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libc-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Addr8
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libc-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libc-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problem in glibc on gentoo
|
||||
Memcheck:Cond
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libc-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_open
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/libdl-2.3.4.so
|
||||
fun:dlopen
|
||||
}
|
||||
|
||||
{
|
||||
Avoid problems w/readline doing a putenv and leaking on exit
|
||||
Memcheck:Leak
|
||||
fun:malloc
|
||||
fun:xmalloc
|
||||
fun:sh_set_lines_and_columns
|
||||
fun:_rl_get_screen_size
|
||||
fun:_rl_init_terminal_io
|
||||
obj:/lib/libreadline.so.4.3
|
||||
fun:rl_initialize
|
||||
fun:setup_readline
|
||||
fun:initreadline
|
||||
fun:_PyImport_LoadDynamicModule
|
||||
fun:load_module
|
||||
fun:import_submodule
|
||||
fun:load_next
|
||||
fun:import_module_ex
|
||||
fun:PyImport_ImportModuleEx
|
||||
}
|
||||
|
||||
{
|
||||
Mysterious leak that seems to deal w/pthreads
|
||||
Memcheck:Leak
|
||||
fun:calloc
|
||||
obj:/lib/ld-2.3.4.so
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_allocate_tls
|
||||
fun:__pthread_initialize_minimal
|
||||
}
|
||||
|
||||
{
|
||||
Mysterious leak that seems to deal w/pthreads
|
||||
Memcheck:Leak
|
||||
fun:memalign
|
||||
obj:/lib/ld-2.3.4.so
|
||||
fun:_dl_allocate_tls
|
||||
fun:__pthread_initialize_minimal
|
||||
}
|
||||
|
||||
###
|
||||
### These occur from somewhere within the SSL, when running
|
||||
### test_socket_sll. They are too general to leave on by default.
|
||||
|
@ -214,11 +356,3 @@
|
|||
}
|
||||
|
||||
|
||||
# some extra lxml specific (?) suppressions..
|
||||
|
||||
{
|
||||
Test
|
||||
Memcheck:Param
|
||||
sigaction(act)
|
||||
fun:__libc_sigaction
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue