Remove support for dmd 2.076.1

This commit is contained in:
Eugen Wissner 2018-04-14 16:19:23 +02:00
parent d267a9cc64
commit 012c2d4c18
4 changed files with 16 additions and 25 deletions

View File

@ -7,7 +7,7 @@ os:
language: d language: d
d: d:
- dmd-2.079.0 - dmd-2.079.1
- dmd-2.078.3 - dmd-2.078.3
- dmd-2.077.1 - dmd-2.077.1
@ -22,7 +22,7 @@ addons:
- gcc-multilib - gcc-multilib
before_script: before_script:
- if [ "`$DC --version | head -n 1 | grep 'v2.079.0'`" ]; then - if [ "`$DC --version | head -n 1 | grep 'v2.079.1'`" ]; then
export UNITTEST="unittest-cov"; export UNITTEST="unittest-cov";
fi fi

View File

@ -172,10 +172,9 @@ parameter is used)
| DMD | GCC | | DMD | GCC |
|:-------:|:---------:| |:-------:|:---------:|
| 2.079.0 | *master* | | 2.079.1 | *master* |
| 2.078.3 | | | 2.078.3 | |
| 2.077.1 | | | 2.077.1 | |
| 2.076.1 | |
### Current status ### Current status

View File

@ -4,10 +4,10 @@ os: Visual Studio 2015
environment: environment:
matrix: matrix:
- DC: dmd - DC: dmd
DVersion: 2.079.0 DVersion: 2.079.1
arch: x64 arch: x64
- DC: dmd - DC: dmd
DVersion: 2.079.0 DVersion: 2.079.1
arch: x86 arch: x86
- DC: dmd - DC: dmd
DVersion: 2.078.3 DVersion: 2.078.3
@ -21,12 +21,6 @@ environment:
- DC: dmd - DC: dmd
DVersion: 2.077.1 DVersion: 2.077.1
arch: x86 arch: x86
- DC: dmd
DVersion: 2.076.1
arch: x64
- DC: dmd
DVersion: 2.076.1
arch: x86
skip_tags: true skip_tags: true

View File

@ -156,7 +156,8 @@ struct SList(T)
* init = Initial value to fill the list with. * init = Initial value to fill the list with.
* allocator = Allocator. * allocator = Allocator.
*/ */
this(const size_t len, T init, shared Allocator allocator = defaultAllocator) @trusted this(size_t len, T init, shared Allocator allocator = defaultAllocator)
@trusted
{ {
this(allocator); this(allocator);
if (len == 0) if (len == 0)
@ -181,7 +182,7 @@ struct SList(T)
} }
/// ditto /// ditto
this(const size_t len, shared Allocator allocator = defaultAllocator) this(size_t len, shared Allocator allocator = defaultAllocator)
{ {
this(len, T.init, allocator); this(len, T.init, allocator);
} }
@ -656,7 +657,7 @@ struct SList(T)
* *
* Returns: The number of elements removed. * Returns: The number of elements removed.
*/ */
size_t removeFront(const size_t howMany) size_t removeFront(size_t howMany)
out (removed) out (removed)
{ {
assert(removed <= howMany); assert(removed <= howMany);
@ -1125,7 +1126,8 @@ struct DList(T)
* init = Initial value to fill the list with. * init = Initial value to fill the list with.
* allocator = Allocator. * allocator = Allocator.
*/ */
this(const size_t len, T init, shared Allocator allocator = defaultAllocator) @trusted this(size_t len, T init, shared Allocator allocator = defaultAllocator)
@trusted
{ {
this(allocator); this(allocator);
if (len == 0) if (len == 0)
@ -1153,7 +1155,7 @@ struct DList(T)
} }
/// ditto /// ditto
this(const size_t len, shared Allocator allocator = defaultAllocator) this(size_t len, shared Allocator allocator = defaultAllocator)
{ {
this(len, T.init, allocator); this(len, T.init, allocator);
} }
@ -1910,7 +1912,7 @@ struct DList(T)
{ {
auto n = this.head.next; auto n = this.head.next;
this.allocator_.dispose(this.head); allocator.dispose(this.head);
this.head = n; this.head = n;
if (this.head is null) if (this.head is null)
{ {
@ -1983,7 +1985,7 @@ struct DList(T)
* *
* Returns: The number of elements removed. * Returns: The number of elements removed.
*/ */
size_t removeFront(const size_t howMany) size_t removeFront(size_t howMany)
out (removed) out (removed)
{ {
assert(removed <= howMany); assert(removed <= howMany);
@ -2010,7 +2012,7 @@ struct DList(T)
} }
/// ditto /// ditto
size_t removeBack(const size_t howMany) size_t removeBack(size_t howMany)
out (removed) out (removed)
{ {
assert(removed <= howMany); assert(removed <= howMany);
@ -2070,11 +2072,7 @@ struct DList(T)
while (e !is *tailNext) while (e !is *tailNext)
{ {
auto next = e.next; auto next = e.next;
/* Workaround for dmd 2.076.1 bug on OSX. Invariants fail when allocator.dispose(e);
the allocator is called. Here it should be safe to use
allocator_ directory, since the list isn't empty.
See also removeFront. */
this.allocator_.dispose(e);
e = next; e = next;
} }