codgen refactoring: prepare for alternative string/seq implementations
This commit is contained in:
parent
a9e96888d0
commit
b5a96d28c7
5 changed files with 29 additions and 21 deletions
|
|
@ -94,8 +94,8 @@ proc mnewString(len: int): NimString {.compilerProc.} =
|
|||
result.len = len
|
||||
|
||||
proc copyStrLast(s: NimString, start, last: int): NimString {.compilerProc.} =
|
||||
var start = max(start, 0)
|
||||
var len = min(last, s.len-1) - start + 1
|
||||
let start = max(start, 0)
|
||||
let len = min(last, s.len-1) - start + 1
|
||||
if len > 0:
|
||||
result = rawNewStringNoInit(len)
|
||||
result.len = len
|
||||
|
|
@ -104,6 +104,10 @@ proc copyStrLast(s: NimString, start, last: int): NimString {.compilerProc.} =
|
|||
else:
|
||||
result = rawNewString(len)
|
||||
|
||||
proc nimToCStringConv(s: NimString): cstring {.compilerProc, inline.} =
|
||||
if s == nil or s.len == 0: result = cstring""
|
||||
else: result = cstring(addr s.data)
|
||||
|
||||
proc copyStr(s: NimString, start: int): NimString {.compilerProc.} =
|
||||
result = copyStrLast(s, start, s.len-1)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue