revert stdlib changes which are not required anymore
This commit is contained in:
parent
66f18037b3
commit
484548c784
6 changed files with 20 additions and 21 deletions
|
|
@ -371,8 +371,9 @@ proc map*[T, S](s: openArray[T], op: proc (x: T): S {.closure.}):
|
||||||
b = map(a, proc(x: int): string = $x)
|
b = map(a, proc(x: int): string = $x)
|
||||||
assert b == @["1", "2", "3", "4"]
|
assert b == @["1", "2", "3", "4"]
|
||||||
|
|
||||||
result = newSeqOfCap[S](s.len)
|
newSeq(result, s.len)
|
||||||
for elem in s: result.add op(elem)
|
for i in 0 ..< s.len:
|
||||||
|
result[i] = op(s[i])
|
||||||
|
|
||||||
proc apply*[T](s: var openArray[T], op: proc (x: var T) {.closure.})
|
proc apply*[T](s: var openArray[T], op: proc (x: var T) {.closure.})
|
||||||
{.inline.} =
|
{.inline.} =
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,8 @@ template withValue*[A, B](t: var SharedTable[A, B], key: A,
|
||||||
try:
|
try:
|
||||||
var hc: Hash
|
var hc: Hash
|
||||||
var index = rawGet(t, key, hc)
|
var index = rawGet(t, key, hc)
|
||||||
if index >= 0:
|
let hasKey = index >= 0
|
||||||
|
if hasKey:
|
||||||
var value {.inject.} = addr(t.data[index].val)
|
var value {.inject.} = addr(t.data[index].val)
|
||||||
body
|
body
|
||||||
finally:
|
finally:
|
||||||
|
|
@ -103,7 +104,8 @@ template withValue*[A, B](t: var SharedTable[A, B], key: A,
|
||||||
try:
|
try:
|
||||||
var hc: Hash
|
var hc: Hash
|
||||||
var index = rawGet(t, key, hc)
|
var index = rawGet(t, key, hc)
|
||||||
if index >= 0:
|
let hasKey = index >= 0
|
||||||
|
if hasKey:
|
||||||
var value {.inject.} = addr(t.data[index].val)
|
var value {.inject.} = addr(t.data[index].val)
|
||||||
body1
|
body1
|
||||||
else:
|
else:
|
||||||
|
|
@ -117,9 +119,9 @@ proc mget*[A, B](t: var SharedTable[A, B], key: A): var B =
|
||||||
withLock t:
|
withLock t:
|
||||||
var hc: Hash
|
var hc: Hash
|
||||||
var index = rawGet(t, key, hc)
|
var index = rawGet(t, key, hc)
|
||||||
if index >= 0:
|
let hasKey = index >= 0
|
||||||
result = t.data[index].val
|
if hasKey: result = t.data[index].val
|
||||||
else:
|
if not hasKey:
|
||||||
when compiles($key):
|
when compiles($key):
|
||||||
raise newException(KeyError, "key not found: " & $key)
|
raise newException(KeyError, "key not found: " & $key)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -502,6 +502,7 @@ proc contains*[T](s: Selector[T], fd: SocketHandle|int): bool {.inline.} =
|
||||||
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
||||||
let fdi = int(fd)
|
let fdi = int(fd)
|
||||||
s.checkFd(fdi)
|
s.checkFd(fdi)
|
||||||
|
if fdi in s:
|
||||||
result = s.fds[fdi].data
|
result = s.fds[fdi].data
|
||||||
|
|
||||||
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
||||||
|
|
|
||||||
|
|
@ -600,6 +600,7 @@ proc contains*[T](s: Selector[T], fd: SocketHandle|int): bool {.inline.} =
|
||||||
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
||||||
let fdi = int(fd)
|
let fdi = int(fd)
|
||||||
s.checkFd(fdi)
|
s.checkFd(fdi)
|
||||||
|
if fdi in s:
|
||||||
result = s.fds[fdi].data
|
result = s.fds[fdi].data
|
||||||
|
|
||||||
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
||||||
|
|
|
||||||
|
|
@ -410,17 +410,11 @@ else:
|
||||||
body
|
body
|
||||||
|
|
||||||
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
proc getData*[T](s: Selector[T], fd: SocketHandle|int): var T =
|
||||||
# The compiler needs this to prove that all code paths return a value
|
|
||||||
result = (cast[ptr T](0'u))[]
|
|
||||||
|
|
||||||
s.withSelectLock():
|
s.withSelectLock():
|
||||||
let fdi = int(fd)
|
let fdi = int(fd)
|
||||||
for i in 0..<FD_SETSIZE:
|
for i in 0..<FD_SETSIZE:
|
||||||
if s.fds[i].ident == fdi:
|
if s.fds[i].ident == fdi:
|
||||||
result = s.fds[i].data
|
return s.fds[i].data
|
||||||
break
|
|
||||||
|
|
||||||
assert cast[uint](addr(result)) != 0
|
|
||||||
|
|
||||||
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
proc setData*[T](s: Selector[T], fd: SocketHandle|int, data: T): bool =
|
||||||
s.withSelectLock():
|
s.withSelectLock():
|
||||||
|
|
|
||||||
|
|
@ -338,7 +338,7 @@ proc rowEntry*(my: var CsvParser, entry: string): var string =
|
||||||
strm.close()
|
strm.close()
|
||||||
|
|
||||||
let index = my.headers.find(entry)
|
let index = my.headers.find(entry)
|
||||||
assert index >= 0
|
if index >= 0:
|
||||||
result = my.row[index]
|
result = my.row[index]
|
||||||
|
|
||||||
when not defined(testing) and isMainModule:
|
when not defined(testing) and isMainModule:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue