Ok, look at this solution...I had to add a new function used to destroy 
properly notification gtk_widget (nw) and engine.
I noticed that the problem was in an uncorrected closure of a G_Modules after 
the destruction of the widget.
Practically the daemon destroys engine, in particular "engine->module", when it 
is already used by the notification pop-up.
The correct way to destroy engine is this:
        -) Destroy notification pop-up by calling "gtk_distroy_widget".
        -) Decrease value of "engine->ref_count" and if it is equal to zero, 
unload engine->module and destroy engine.

Currently the daemon works in this modality:
        -) It calls the invokes the destruction of a notification pop-up by 
calling "gtk_destroy_widget", but with this event is also called 
"theme_engine_unref". 
        -) It decreases value of "engine->ref_count" and if it is equal to 
zero, it unloads "engine->module" and destroys "engine".
        -) It ends the destruction of a notification pop-up.

The daemon unloads engine->module when it is still in use by gtk_widget. I 
wrote the function that follows the correct way for to destroy widget and 
eventually engine.
This function, called  theme_destroy_widget, will be called in daemon.c when it 
is requested the destruction of widget in function _notify_timeout_destroy.


** Attachment added: "notification-daemon_0.4.0-0ubuntu3_rev1.debdiff"
   
http://launchpadlibrarian.net/23115868/notification-daemon_0.4.0-0ubuntu3_rev1.debdiff

-- 
notification-daemon crashed with SIGSEGV in strcmp()
https://bugs.launchpad.net/bugs/131227
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to