view tango-0.99.8.patch @ 1651:cb960b882ca3 default tip

bindings were moved to dsource.org/projects/bindings/
author Moritz Warning <moritzwarning@web.de>
date Thu, 20 May 2010 20:05:03 +0200
parents 2a8d4f98b543
children
line wrap: on
line source

Index: object.di
===================================================================
--- object.di	(revision 4578)
+++ object.di	(working copy)
@@ -35,15 +35,17 @@
     Interface[] interfaces;
     ClassInfo   base;
     void*       destructor;
-    void(*classInvariant)(Object);
+    void*       classInvariant;
     uint        flags;
     // 1:       // IUnknown
     // 2:       // has no possible pointers into GC memory
     // 4:       // has offTi[] member
     // 8:       // has constructors
+    // 32:      // has typeinfo    
     void*       deallocator;
     OffsetTypeInfo[] offTi;
     void*       defaultConstructor;
+    TypeInfo typeinfo;
 
     static ClassInfo find(char[] classname);
     Object create();
@@ -127,10 +129,11 @@
     char[] name;
     void[] m_init;
 
-    uint function(void*)      xtoHash;
-    int function(void*,void*) xopEquals;
-    int function(void*,void*) xopCmp;
-    char[] function(void*)    xtoString;
+    // These are ONLY for use as a delegate.funcptr!
+    hash_t function()   xtoHash;
+    int function(void*) xopEquals;
+    int function(void*) xopCmp;
+    char[] function()   xtoString;
 
     uint m_flags;
 }
Index: lib/common/tango/core/Thread.d
===================================================================
--- lib/common/tango/core/Thread.d	(revision 4578)
+++ lib/common/tango/core/Thread.d	(working copy)
@@ -295,7 +295,7 @@
                 }
                 else version (X86_64)
                 {
-                    ulong rax,rbx,rcx,rdx,rbp,rsi,rdi,rsp,r10,r11,r12,r13,r14,r15;
+                    ulong rax,rbx,rcx,rdx,rbp,rsi,rdi,rsp,r8,r9,r10,r11,r12,r13,r14,r15;
                     asm
                     {
                         movq rax[RBP], RAX        ;
@@ -306,6 +306,8 @@
                         movq rsi[RBP], RSI        ;
                         movq rdi[RBP], RDI        ;
                         movq rsp[RBP], RSP        ;
+                        movq  r8[RBP], R8         ;
+                        movq  r9[RBP], R9         ;
                         movq r10[RBP], R10        ;
                         movq r11[RBP], R11        ;
                         movq r12[RBP], R12        ;
Index: lib/gc/basic/gcx.d
===================================================================
--- lib/gc/basic/gcx.d	(revision 4578)
+++ lib/gc/basic/gcx.d	(working copy)
@@ -2198,7 +2198,7 @@
             }
             else version (X86_64)
             {
-                ulong rax,rbx,rcx,rdx,rbp,rsi,rdi,rsp,r10,r11,r12,r13,r14,r15;
+                ulong rax,rbx,rcx,rdx,rbp,rsi,rdi,rsp,r8,r9,r10,r11,r12,r13,r14,r15;
                 asm
                 {
                     movq rax[RBP], RAX      ;
@@ -2209,6 +2209,8 @@
                     movq rsi[RBP], RSI      ;
                     movq rdi[RBP], RDI      ;
                     movq rsp[RBP], RSP      ;
+                    movq  r8[RBP], R8       ;
+                    movq  r9[RBP], R9       ;
                     movq r10[RBP], R10      ;
                     movq r11[RBP], R11      ;
                     movq r12[RBP], R12      ;
Index: tango/text/convert/Layout.d
===================================================================
--- tango/text/convert/Layout.d	(revision 4578)
+++ tango/text/convert/Layout.d	(working copy)
@@ -660,8 +660,12 @@
 
                        case TypeCode.STRUCT:
                             auto s = cast(TypeInfo_Struct) type;
-                            if (s.xtoString)
-                                return Utf.fromString8 (s.xtoString(p), result);
+                            if (s.xtoString) {
+                                char[] delegate() toString;
+                                toString.ptr = p;
+                                toString.funcptr = cast(char[] function()) s.xtoString;
+                                return Utf.fromString8 (toString(), result);
+                            }
                             goto default;
 
                        case TypeCode.INTERFACE:
Index: tango/net/Socket.d
===================================================================
--- tango/net/Socket.d	(revision 4578)
+++ tango/net/Socket.d	(working copy)
@@ -1545,10 +1545,10 @@
 
 abstract class Address
 {
-        protected sockaddr* name();
-        protected int nameLen();
-        AddressFamily addressFamily();
-        char[] toString();
+        abstract protected sockaddr* name();
+        abstract protected int nameLen();
+        abstract AddressFamily addressFamily();
+        abstract char[] toString();
 
         /***********************************************************************