digitalmars.D.bugs - [Issue 3237] New: Access Violation during reference counting
- d-bugmail puremagic.com (18/18) Aug 08 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
- d-bugmail puremagic.com (8/8) Aug 08 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
- d-bugmail puremagic.com (11/11) Aug 08 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
- d-bugmail puremagic.com (8/8) Aug 08 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
- d-bugmail puremagic.com (8/8) Aug 08 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
- d-bugmail puremagic.com (15/15) Aug 14 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3237
http://d.puremagic.com/issues/show_bug.cgi?id=3237
Summary: Access Violation during reference counting
Product: D
Version: 2.032
Platform: x86
OS/Version: Windows
Status: NEW
Severity: critical
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: bartosz relisoft.com
RcName is a struct that does reference counting. When I store an instance of
RcName in an object, everything seems to go fine, except that I get an access
violation during the final destruction.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 08 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3237 12:31:46 PDT --- Created an attachment (id=439) --> (http://d.puremagic.com/issues/attachment.cgi?id=439) test case for access violatin while reference counting -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 08 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3237
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
13:23:38 PDT ---
compile with -gc and run under windbg, the windows debugger.
Shows that it crashes because _cnt is null in the first line of release().
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 08 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3237 15:18:14 PDT --- Created an attachment (id=440) --> (http://d.puremagic.com/issues/attachment.cgi?id=440) simplified case with a write in the destructor of Counter -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 08 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3237 15:20:08 PDT --- I simplified the example. It turns out that the destructor of a class object Counter is called. I have no idea what mechanism may call the destructor other than GC. A new file attached. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 08 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3237
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |INVALID
22:49:38 PDT ---
The cause of the crash is there is a dependency in the code on the order in
which the gc runs the destructors on collected objects. Dependency on this
order is not valid D code.
Generally, one cannot refer to other objects on the GC heap when inside a
destructor for a GC object.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 14 2009









d-bugmail puremagic.com 