mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
122 lines
4.5 KiB
Diff
122 lines
4.5 KiB
Diff
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();
|
|
|
|
/***********************************************************************
|
|
|