diff options
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/nimbase.h | 6 | ||||
-rwxr-xr-x | lib/posix/posix.nim | 15 | ||||
-rwxr-xr-x | lib/system/alloc.nim | 4 |
3 files changed, 20 insertions, 5 deletions
diff --git a/lib/nimbase.h b/lib/nimbase.h index e2afed8f9..f52185800 100755 --- a/lib/nimbase.h +++ b/lib/nimbase.h @@ -1,7 +1,7 @@ /* Nimrod's Runtime Library - (c) Copyright 2011 Andreas Rumpf + (c) Copyright 2012 Andreas Rumpf See the file "copying.txt", included in this distribution, for details about the copyright. @@ -438,7 +438,9 @@ __declspec(naked) int __fastcall NimXadd(volatile int* pNum, int val) { # define unlikely(x) (x) #endif -#if defined(__GNUC__) || defined(__clang__) +#if 0 // defined(__GNUC__) || defined(__clang__) +// not needed anymore because the stack marking cares about +// interior pointers now static inline void GCGuard (void *ptr) { asm volatile ("" :: "X" (ptr)); } # define GC_GUARD __attribute__ ((cleanup(GCGuard))) #else diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index 58801d83e..f8d49ddb4 100755 --- a/lib/posix/posix.nim +++ b/lib/posix/posix.nim @@ -68,10 +68,19 @@ const STDIN_FILENO* = 0 ## File number of stdin; STDOUT_FILENO* = 1 ## File number of stdout; +when defined(endb): + # to not break bootstrapping again ... + type + TDIR* {.importc: "DIR", header: "<dirent.h>", + final, pure, incompleteStruct.} = object + ## A type representing a directory stream. +else: + type + TDIR* {.importc: "DIR", header: "<dirent.h>", + final, pure.} = object + ## A type representing a directory stream. + type - TDIR* {.importc: "DIR", header: "<dirent.h>", final, pure.} = object - ## A type representing a directory stream. - Tdirent* {.importc: "struct dirent", header: "<dirent.h>", final, pure.} = object ## dirent_t struct d_ino*: TIno ## File serial number. diff --git a/lib/system/alloc.nim b/lib/system/alloc.nim index 8bf173fc1..c3478a739 100755 --- a/lib/system/alloc.nim +++ b/lib/system/alloc.nim @@ -683,6 +683,10 @@ proc getOccupiedMem(a: TMemRegion): int {.inline.} = # ---------------------- thread memory region ------------------------------- template InstantiateForRegion(allocator: expr) = + when false: + proc interiorAllocatedPtr*(p: pointer): pointer = + result = interiorAllocatedPtr(allocator, p) + proc deallocOsPages = deallocOsPages(allocator) proc alloc(size: int): pointer = |