Fixes for new runtime (#7037)

This commit is contained in:
Dmitry Atamanov
2018-01-08 23:26:03 +03:00
committed by Andreas Rumpf
parent e2f1f8bafa
commit fd1883f90a
2 changed files with 28 additions and 6 deletions

View File

@@ -9,7 +9,7 @@
type
Allocator* {.inheritable.} = ptr object
alloc*: proc (a: Allocator; size: int; alignment = 8): pointer {.nimcall.}
alloc*: proc (a: Allocator; size: int; alignment: int = 8): pointer {.nimcall.}
dealloc*: proc (a: Allocator; p: pointer; size: int) {.nimcall.}
realloc*: proc (a: Allocator; p: pointer; oldSize, newSize: int): pointer {.nimcall.}
@@ -22,14 +22,14 @@ proc getCurrentAllocator*(): Allocator =
proc setCurrentAllocator*(a: Allocator) =
currentAllocator = a
proc alloc*(size: int): pointer =
proc alloc*(size: int; alignment: int = 8): pointer =
let a = getCurrentAllocator()
result = a.alloc(a, size)
result = a.alloc(a, size, alignment)
proc dealloc*(p: pointer; size: int) =
let a = getCurrentAllocator()
a.dealloc(a, size)
a.dealloc(a, p, size)
proc realloc*(p: pointer; oldSize, newSize: int): pointer =
let a = getCurrentAllocator()
result = a.realloc(a, oldSize, newSize)
result = a.realloc(a, p, oldSize, newSize)

View File

@@ -7,7 +7,7 @@
# distribution, for details about the copyright.
#
import allocators
import allocators, typetraits
## Default seq implementation used by Nim's core.
type
@@ -115,3 +115,25 @@ proc `@`*[T](elems: openArray[T]): seq[T] =
result.data[i] = elems[i]
proc len*[T](x: seq[T]): int {.inline.} = x.len
proc `$`*[T](x: seq[T]): string =
result = "@["
var firstElement = true
for i in 0..<x.len:
let
value = x.data[i]
if firstElement:
firstElement = false
else:
result.add(", ")
when compiles(value.isNil):
# this branch should not be necessary
if value.isNil:
result.add "nil"
else:
result.addQuoted(value)
else:
result.addQuoted(value)
result.add("]")