Mercurial > projects > ldc
diff runtime/llvmdc.diff @ 627:79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 01 Oct 2008 19:19:26 +0200 |
parents | c60e122f4ada |
children | 9fb1f559d9e9 |
line wrap: on
line diff
--- a/runtime/llvmdc.diff Wed Oct 01 19:16:10 2008 +0200 +++ b/runtime/llvmdc.diff Wed Oct 01 19:19:26 2008 +0200 @@ -137,6 +137,34 @@ =================================================================== --- lib/gc/basic/gcx.d (revision 3939) +++ lib/gc/basic/gcx.d (working copy) +@@ -65,6 +65,13 @@ + } + + ++struct BlkInfo ++{ ++ void* base; ++ size_t size; ++ uint attr; ++} ++ + private + { + enum BlkAttr : uint +@@ -75,13 +82,6 @@ + ALL_BITS = 0b1111_1111 + } + +- struct BlkInfo +- { +- void* base; +- size_t size; +- uint attr; +- } +- + extern (C) void* rt_stackBottom(); + extern (C) void* rt_stackTop(); + @@ -2178,6 +2178,28 @@ __builtin_unwind_init(); sp = & sp; @@ -229,6 +257,111 @@ int[64] intargs = void; byte[64] byteargs = void; long[64] longargs = void; +Index: tango/text/xml/Document.d +=================================================================== +--- tango/text/xml/Document.d (revision 3939) ++++ tango/text/xml/Document.d (working copy) +@@ -1243,7 +1243,8 @@ + freeIndex = 0; + } + +- NodeSet set = {this}; ++ NodeSet set; ++ set.host = this; + auto mark = freeIndex; + allocate(root); + return set.assign (mark); +@@ -1273,7 +1274,8 @@ + + NodeSet dup () + { +- NodeSet copy = {host}; ++ NodeSet copy; ++ copy.host = host; + copy.nodes = nodes.dup; + return copy; + } +@@ -1337,7 +1339,7 @@ + + NodeSet nth (uint index) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + if (index < nodes.length) + host.allocate (nodes [index]); +@@ -1495,7 +1497,7 @@ + + NodeSet filter (bool delegate(Node) filter) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) +@@ -1514,7 +1516,7 @@ + NodeSet child (bool delegate(Node) filter, + XmlNodeType type = XmlNodeType.Element) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (parent; nodes) +@@ -1534,7 +1536,7 @@ + + NodeSet attribute (bool delegate(Node) filter) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) +@@ -1565,7 +1567,7 @@ + } + } + +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) +@@ -1583,7 +1585,7 @@ + + NodeSet parent (bool delegate(Node) filter) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) +@@ -1613,7 +1615,7 @@ + + NodeSet ancestor (bool delegate(Node) filter) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + void traverse (Node child) +@@ -1648,7 +1650,7 @@ + NodeSet next (bool delegate(Node) filter, + XmlNodeType type = XmlNodeType.Element) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) +@@ -1675,7 +1677,7 @@ + NodeSet prev (bool delegate(Node) filter, + XmlNodeType type = XmlNodeType.Element) + { +- NodeSet set = {host}; ++ NodeSet set; set.host = host; + auto mark = host.mark; + + foreach (node; nodes) Index: tango/core/Vararg.d =================================================================== --- tango/core/Vararg.d (revision 3939)