On Wed, 15 Feb 2012 08:52:52 +0100, Jacob Carlborg <[email protected]> wrote:

On 15 Feb, 2012,at 01:35 AM, Martin Nowak <[email protected]> wrote:

> I'm seeing some general problem with array appending. Removing the
> append in the above method and the segfault moves to an other part of
> the code, which uses array appending.
>

Any futher insights on this?
Even a bigger test case would be helpful if it reproduces the error.
Unfortunately no. I have a big test case:

This example: http://pastebin.com/k1QQnhEp
together with Orange: https://github.com/jacob-carlborg/orange

Just place the example in the same folder as Orange and run it with RDMD.

I get an infinite recursion.

Starting from
Serializer.d(1107): return deserializeObject!(T)(keyOrId); // with keyOrId being "refme" the recursive field name in Foo

#29 0x000000000040a947 in orange.serialization.Serializer.Serializer.__T19deserializeInternalTC4main3FooTAyaZ.deserializeInternal() (this=0x8006c4a00, keyOrId=0x0000000000459eb00000000000000005) at orange/serialization/Serializer.d:1104 #30 0x000000000040ad53 in orange.serialization.Serializer.Serializer.__T29objectStructDeserializeHelperTC4main3FooZ.objectStructDeserializeHelper() (this=0x8006c4a00, value=<error reading variable>) at orange/serialization/Serializer.d:1482 #31 0x000000000040ac7e in orange.serialization.Serializer.Serializer.__T17deserializeObjectTC4main3FooTAyaZ.deserializeObject() (this=0x80128b1c0) at orange/serialization/Serializer.d:1181 #32 0x000000000040a89f in orange.serialization.Serializer.Serializer.__T13triggerEventsTC4main3FooZ.triggerEvents() (this=0x8006c4a00, dg=0x000000000040aa94000000080128b1c0, value=0x80128c860) at orange/serialization/Serializer.d:1749 #33 0x000000000040aa8b in orange.serialization.Serializer.Serializer.__T17deserializeObjectTC4main3FooTAyaZ.deserializeObject() (this=0x80128b1c0) at orange/serialization/Serializer.d:1153 #34 0x00000000004061cb in orange.serialization.archives.XmlArchive.__T10XmlArchiveTaZ.XmlArchive.unarchiveObject() (this=0x80128b140) at orange/serialization/archives/XmlArchive.d:1366 #35 0x0000000000417cdb in orange.util.Use.__T7restoreTvTS6orange3xml11XmlDocument19__T11XmlDocumentTaZ11XmlDocument4NodeZ.restore() (this=0x0, value=0x8006c6f50, dg=0x000000000040603c000000080128b140) at orange/util/Use.d:162 #36 0x0000000000417b94 in orange.util.Use.__T13RestoreStructTvTS6orange3xml11XmlDocument19__T11XmlDocumentTaZ11XmlDocument4NodeZ.RestoreStruct.opIn() (this=0x7fffffbffc20, deleg=0x000000000040603c000000080128b140) at orange/util/Use.d:127 #37 0x0000000000406035 in orange.serialization.archives.XmlArchive.__T10XmlArchiveTaZ.XmlArchive.unarchiveObject() (this=0x8006c6f00, dg=..., result=0x80128b1c8, id=0x7fffffbffc98, key=0x0000000000459eb00000000000000005) at orange/serialization/archives/XmlArchive.d:1342 #38 0x000000000040aa2d in orange.serialization.Serializer.Serializer.__T17deserializeObjectTC4main3FooTAyaZ.deserializeObject() (this=0x8006c4a00, keyOrId=0x0000000000459eb00000000000000005) at orange/serialization/Serializer.d:1152 #39 0x000000000040a947 in orange.serialization.Serializer.Serializer.__T19deserializeInternalTC4main3FooTAyaZ.deserializeInternal() (this=0x8006c4a00, keyOrId=0x0000000000459eb00000000000000005) at orange/serialization/Serializer.d:1104


By the way, there are about 3 or 4 delegate context allocations within this cycles.
_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta

Reply via email to