@@ -67,7 +67,7 @@ version (Windows)
6767 & ~ (alignment - 1 ));
6868
6969 // write the header before the aligned pointer
70- AlignInfo* head = AlignInfo! ()(alignedPtr);
70+ AlignInfo! () * head = AlignInfo! ()(alignedPtr);
7171 head.basePtr = basePtr;
7272 head.size = size;
7373
@@ -82,7 +82,7 @@ version (Windows)
8282 if (! ptr) return _aligned_malloc(size, alignment);
8383
8484 // gets the header from the exising pointer
85- AlignInfo* head = AlignInfo(ptr);
85+ AlignInfo! () * head = AlignInfo! () (ptr);
8686
8787 // gets a new aligned pointer
8888 void * alignedPtr = _aligned_malloc(size, alignment);
@@ -104,14 +104,16 @@ version (Windows)
104104 private void _aligned_free ()(void * ptr)
105105 {
106106 if (! ptr) return ;
107- AlignInfo* head = AlignInfo(ptr);
107+ AlignInfo! () * head = AlignInfo! () (ptr);
108108 free(head.basePtr);
109109 }
110110
111111 }
112112 // DMD Win 64 bit, uses microsoft standard C library which implements them
113113 else
114114 {
115+ private extern (C) void * _aligned_free(void * );
116+ private extern (C) void * _aligned_malloc(size_t , size_t );
115117 private extern (C) void * _aligned_realloc(void * , size_t , size_t );
116118 }
117119}
@@ -199,11 +201,12 @@ unittest
199201 // ...
200202}
201203
204+ version (CRuntime_DigitalMars ) version(unittest )
205+ private size_t addr (ref void * ptr) { return cast (size_t ) ptr; }
206+
202207version (CRuntime_DigitalMars )
203208unittest
204209{
205- static size_t addr ()(ref void * ptr) { return cast (size_t ) ptr; }
206-
207210 void * m;
208211
209212 m = _aligned_malloc(16 , 0x10 );
0 commit comments