Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
October 25, 2013 [Issue 11357] New: Weird behavior of appender with File as the element... do not know exactly where the bug resides. | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=11357 Summary: Weird behavior of appender with File as the element... do not know exactly where the bug resides. Product: D Version: D2 Platform: x86_64 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: druntime AssignedTo: nobody@puremagic.com ReportedBy: maidenphil@hotmail.com --- Comment #0 from Phil Lavoie <maidenphil@hotmail.com> 2013-10-25 13:19:55 PDT --- So I just found some weird behavior while using std.array.Appender in conjunction with std.stdio.File. The attachment shows it best but, simply put: auto app = appender!( File[] )(); foreach( i = 0; i < dontMatter; ++i ) { app.put( stdout ); } Crashes. Of course, my real life needs did not include copying stdout, but rather filling an array with files using the appender. Phil -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 25, 2013 [Issue 11357] Weird behavior of appender with File as the element... do not know exactly where the bug resides. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Phil Lavoie | http://d.puremagic.com/issues/show_bug.cgi?id=11357 --- Comment #1 from Phil Lavoie <maidenphil@hotmail.com> 2013-10-25 13:22:04 PDT --- Version of dmd is 2.063.2 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 25, 2013 [Issue 11357] Weird behavior of appender with File as the element... do not know exactly where the bug resides. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Phil Lavoie | http://d.puremagic.com/issues/show_bug.cgi?id=11357 --- Comment #2 from Phil Lavoie <maidenphil@hotmail.com> 2013-10-25 13:23:38 PDT --- Created an attachment (id=1284) Run this and it crashes -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 25, 2013 [Issue 11357] Weird behavior of appender with File as the element... do not know exactly where the bug resides. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Phil Lavoie | http://d.puremagic.com/issues/show_bug.cgi?id=11357 monarchdodra@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monarchdodra@gmail.com --- Comment #3 from monarchdodra@gmail.com 2013-10-25 14:16:41 PDT --- Issue is in appender, that doesn't properlly construct objects when inserting them, it merely assign them. There is an existing pull that already fixes this: https://github.com/D-Programming-Language/phobos/pull/1529 That said, putting things with destructors (such as File) is a *terrible* idea, as things put inside dynamic arrays are never "finalized" (destroyed). So basically, you'll never close your files. Prefer using std.container.Array: Not only does this correctly construct your objects, it will also deterministically manage their lifecycle. TY for filing the issue. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 25, 2013 [Issue 11357] Weird behavior of appender with File as the element... do not know exactly where the bug resides. | ||||
---|---|---|---|---|
| ||||
Posted in reply to Phil Lavoie | http://d.puremagic.com/issues/show_bug.cgi?id=11357 --- Comment #4 from Phil Lavoie <maidenphil@hotmail.com> 2013-10-25 16:21:01 PDT --- (In reply to comment #3) > Issue is in appender, that doesn't properlly construct objects when inserting them, it merely assign them. > > There is an existing pull that already fixes this: https://github.com/D-Programming-Language/phobos/pull/1529 > > That said, putting things with destructors (such as File) is a *terrible* idea, > as things put inside dynamic arrays are never "finalized" (destroyed). So > basically, you'll never close your files. > > Prefer using std.container.Array: Not only does this correctly construct your objects, it will also deterministically manage their lifecycle. > > TY for filing the issue. Good to know regarding the never finalized objects/structs. I am thankful for this information. I will give std.container.Array a try, thank you! Phil -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation