deprecate unsafeAddr; extend addr (#19373)

* deprecate unsafeAddr; extend addr

addr is now available for all addressable locations, unsafeAddr is deprecated and become an alias for addr

* follow @Vindaar's advice

* change the signature of addr

* unsafeAddr => addr (stdlib)

* Update changelog.md

* unsafeAddr => addr (tests)

* Revert "unsafeAddr => addr (stdlib)"

This reverts commit ab83c99c507048a8396e636bf22d55fdd84d7d1c.

* doc changes; thanks to @konsumlamm

Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>

Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
This commit is contained in:
flywind 2022-01-16 18:08:38 +08:00 • committed by GitHub
commit d102b2f54c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 69 additions and 66 deletions

View file

@ -9,11 +9,11 @@ copy length and contents 1 @[42]
proc test() =
var sq1 = @[42]
echo "showing original type, length, and contents ", sq1.typeof, " ", sq1.len, " ", sq1
doAssert cast[int](sq1[0].unsafeAddr) != 0
doAssert cast[int](sq1[0].addr) != 0
var sq2 = sq1 # copy of original
echo "copy length and contents ", sq2.len, " ", sq2
doAssert cast[int](sq2[0].unsafeAddr) != 0
doAssert cast[int](sq1[0].unsafeAddr) != 0
doAssert cast[int](sq2[0].addr) != 0
doAssert cast[int](sq1[0].addr) != 0
test()

View file

@ -63,7 +63,7 @@ proc fillPages*(mem: UserProcessMemory, start: uint32, data: seq[byte]) =
#echo cast[uint64](addr mem.pageAccess[i])
let page = mem.pageAccess[i]
assert page != nil
#copyMem(page, unsafeAddr data[i * 0x1000 - start], 0x1000)
#copyMem(page, addr data[i * 0x1000 - start], 0x1000)
const base = 0x00100000

View file

@ -121,7 +121,7 @@ proc createSeq*[T](elems: varargs[T]): myseq[T] =
result.data = cast[type(result.data)](alloc(result.cap * sizeof(T)))
inc allocCount
when supportsCopyMem(T):
copyMem(result.data, unsafeAddr(elems[0]), result.cap * sizeof(T))
copyMem(result.data, addr(elems[0]), result.cap * sizeof(T))
else:
for i in 0..<result.len:
result.data[i] = elems[i]

View file

@ -75,7 +75,7 @@ proc add*(self: var mystring; y: mystring) =
proc create*(lit: string): mystring =
let newLen = lit.len
ensure(result, newLen)
copyMem(addr result.data[result.len], unsafeAddr lit[0], newLen + 1)
copyMem(addr result.data[result.len], addr lit[0], newLen + 1)
result.len = newLen
proc `&`*(a, b: mystring): mystring =

View file

@ -18,7 +18,7 @@ proc `=sink`(self: var Foo; other: Foo) =
proc `=destroy`(self: var Foo) = discard
template preventCursorInference(x) =
let p = unsafeAddr(x)
let p = addr(x)
proc test(): Foo =
result = Foo()