After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 302031 - sigc::ref() crash with g++ 3.3
sigc::ref() crash with g++ 3.3
Status: RESOLVED FIXED
Product: libsigc++
Classification: Bindings
Component: general
2.0.x
Other Linux
: Normal normal
: ---
Assigned To: Martin Schulze
Martin Schulze
Depends on:
Blocks:
 
 
Reported: 2005-04-26 11:37 UTC by Murray Cumming
Modified: 2005-04-27 06:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
test_bind_ref.cc (1.26 KB, text/plain)
2005-04-26 11:38 UTC, Murray Cumming
Details

Description Murray Cumming 2005-04-26 11:37:13 UTC
Version details: g++ 3.3

When using the latest (cvs) libsigc++, in which visit_each_type() specifies the
exact template specialization of visit_each<> to use, this test case causes a
crash. It seems that the bound parameter is not properly forgotten when it is
destroyed. This does not crash with g++ 3.4.
Comment 1 Murray Cumming 2005-04-26 11:38:21 UTC
Created attachment 45688 [details]
test_bind_ref.cc
Comment 2 Murray Cumming 2005-04-26 11:39:45 UTC
Interestingly, though it does not crash with g++ 3.4, it does seem to still
incorrectly access the data in the destroyed parameter.

By the way, the change was made in libsigc++ to solve this bug:
http://bugzilla.gnome.org/show_bug.cgi?id=169225
Comment 3 Murray Cumming 2005-04-27 06:39:43 UTC
I have reverted the change, so sigc::ref() works again. It does not really fix
the other problem - it just avoids it and leaks instead.