I wrote it, it's not that difficult - it's writing the length at the end
of the array byte by byte. I'll look into fixing it.
Andrei
On 8/20/10 20:53 CDT, David Simcha wrote:
I've taken a look at this code and I'm utterly confused by it. I highly
doubt I'll be tackling this bug. I think that if whoever wrote this
can't fix it for next release, it should be rolled back to the 2.047
version.
On 8/19/2010 3:07 PM, Shin Fujishiro wrote:
David Simcha<[email protected]> wrote:
http://d.puremagic.com/issues/show_bug.cgi?id=4681
This is a really bad one. Someone please check to make sure I'm not
doing
anything really silly and that this isn't specific to some obscure
detail of
my setup. If others can reproduce this, it's a really bad one and
probably
warrants an emergency release.
Seems like a bug of Appender.writeCapacity(). It often writes 'cap' to
wrong address; the following assertion fails:
==========
diff --git phobos/std/array.d phobos/std/array.d
index 6b62733..e6d3a62 100644
--- phobos/std/array.d
+++ phobos/std/array.d
@@ -736,10 +736,12 @@ private:
auto p = cast(ubyte*) (pArray.ptr + pArray.length);
if (cap< ubyte.max)
{
+ assert(p + 1<= GC.addrOf(pArray.ptr) + GC.sizeOf(pArray.ptr));
*p = cast(ubyte) cap;
}
else if (cap< ushort.max)
{
+ assert(p + 3<= GC.addrOf(pArray.ptr) + GC.sizeOf(pArray.ptr));
*p++ = ubyte.max;
*p++ = cast(ubyte) cap;
*p++ = cast(ubyte) (cap>> 8);
==========
Shin
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos