diff options
| author | Eugen Wissner <belka@caraus.de> | 2017-01-04 20:37:55 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2017-01-04 20:37:55 +0100 |
| commit | e27d0fe58cae50e9f592a8db6b5052a19f3bcba3 (patch) | |
| tree | 828ffaa328d59a4a0163a3f678df2beb1b5cdd3b /source | |
| parent | 67952dabdb28e504cdc0e34c9f7151e7ffb71ff2 (diff) | |
| download | tanya-e27d0fe58cae50e9f592a8db6b5052a19f3bcba3.tar.gz | |
Fix Vector.remove not destroying from the end copied elements
Diffstat (limited to 'source')
| -rw-r--r-- | source/tanya/container/vector.d | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/tanya/container/vector.d b/source/tanya/container/vector.d index 0992733..e582714 100644 --- a/source/tanya/container/vector.d +++ b/source/tanya/container/vector.d @@ -650,6 +650,8 @@ struct Vector(T) * r = Range originally obtained from this vector. * * Returns: Elements in $(D_PARAM r) after removing. + * + * Precondition: $(D_PARAM r) refers to a region of $(D_KEYWORD this). */ Range!T remove(Range!T r) @trusted in @@ -663,7 +665,7 @@ struct Vector(T) { *a = *b; } - length_ -= r.length; + length = length_ - r.length; return r; } @@ -790,7 +792,7 @@ struct Vector(T) ref T opIndexAssign(ref T value, in size_t pos) @trusted in { - assert(length > pos); + assert(length_ > pos); } body { |
