diff options
author | cooldome <cdome@bk.ru> | 2020-01-17 11:44:06 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-17 11:44:06 +0000 |
commit | f51613e262a18f6f56119d73f4c1431c8ebf6d3a (patch) | |
tree | 9b5894d7fdbb48972d5f4355deddd5dd972657d1 /tests/destructor | |
parent | 76269074014b672582bc630ff393a95e5e21dcec (diff) | |
download | Nim-f51613e262a18f6f56119d73f4c1431c8ebf6d3a.tar.gz |
make sink operator optional (#13068)
* make sink operator optional * bug fix, add changelog entry * Trigger build * fix one regression * fix test * Trigger build * fix typos
Diffstat (limited to 'tests/destructor')
-rw-r--r-- | tests/destructor/smart_ptr.nim | 6 | ||||
-rw-r--r-- | tests/destructor/tdestructor.nim | 10 |
2 files changed, 4 insertions, 12 deletions
diff --git a/tests/destructor/smart_ptr.nim b/tests/destructor/smart_ptr.nim index 7c3141d22..5079dc9db 100644 --- a/tests/destructor/smart_ptr.nim +++ b/tests/destructor/smart_ptr.nim @@ -20,12 +20,6 @@ proc `=`*[T](dest: var SharedPtr[T], src: SharedPtr[T]) {.inline.} = discard atomicInc(src.val[].atomicCounter) dest.val = src.val -proc `=sink`*[T](dest: var SharedPtr[T], src: SharedPtr[T]) {.inline.} = - if dest.val != src.val: - if dest.val != nil: - `=destroy`(dest) - dest.val = src.val - proc newSharedPtr*[T](val: sink T): SharedPtr[T] = result.val = cast[type(result.val)](allocShared0(sizeof(result.val[]))) result.val.atomicCounter = 1 diff --git a/tests/destructor/tdestructor.nim b/tests/destructor/tdestructor.nim index 780a45288..5cfecea4e 100644 --- a/tests/destructor/tdestructor.nim +++ b/tests/destructor/tdestructor.nim @@ -20,14 +20,10 @@ mygeneric2 destroyed ---- ---- myobj destroyed -myobj destroyed -myobj destroyed -myobj destroyed mygeneric1 destroyed --- myobj destroyed myobj destroyed -myobj destroyed ''' """ @@ -37,8 +33,10 @@ type p: pointer proc `=destroy`(o: var TMyObj) = - if o.p != nil: dealloc o.p - echo "myobj destroyed" + if o.p != nil: + dealloc o.p + o.p = nil + echo "myobj destroyed" type TMyGeneric1[T] = object |