http://d.puremagic.com/issues/show_bug.cgi?id=4327
Summary: std.container.Array.Range.~this() tries to call
free(T[])
Product: D
Version: D2
Platform: Other
OS/Version: All
Status: NEW
Severity: blocker
Priority: P2
Component: Phobos
AssignedTo: [email protected]
ReportedBy: [email protected]
--- Comment #0 from Lars T. Kyllingstad <[email protected]> 2010-06-16
02:18:19 PDT ---
Example:
Array!int a;
Error:
std/container.d(1660): Error: function core.stdc.stdlib.free (void* ptr) is not
callable using argument types (int[])
std/container.d(1660): Error: cannot implicitly convert expression
((*this._data)._payload) of type int[] to void*
The fix is trivial, just add .ptr in line 1660:
- free(_data._payload);
+ free(_data._payload.ptr);
But why aren't the unittests picking this up? I've investigated a bit, and
found that when Array!int is declared in the std.concurrency unittests, the
int[] is implicitly cast to void* in the call to free(). However, this doesn't
happen when Array!int is declared in user code. Very strange.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------