From 28dedee456e741f02f08a944f41daa9e46236224 Mon Sep 17 00:00:00 2001 From: k-hara Date: Fri, 10 Feb 2012 21:15:49 +0900 Subject: [PATCH] Issue 7444 - Require [] for array copies too --- std/algorithm.d | 2 +- std/array.d | 8 ++++---- std/digest/md.d | 12 ++++++------ std/digest/ripemd.d | 14 +++++++------- std/digest/sha.d | 2 +- std/outbuffer.d | 2 +- std/regex.d | 2 +- std/string.d | 2 +- std/uuid.d | 2 +- std/zip.d | 12 ++++++------ 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/std/algorithm.d b/std/algorithm.d index e8c5b3506..619eb5016 100644 --- a/std/algorithm.d +++ b/std/algorithm.d @@ -6003,7 +6003,7 @@ if (isInputRange!Range1 && isOutputRange!(Range2, ElementType!Range1)) // generic implementation. enforce(target.length >= source.length, "Cannot copy a source array into a smaller target array."); - target[0..source.length] = source; + target[0..source.length] = source[]; return target[source.length..$]; } diff --git a/std/array.d b/std/array.d index 013d9f5d4..11696472b 100644 --- a/std/array.d +++ b/std/array.d @@ -1778,7 +1778,7 @@ void replaceInPlace(T, Range)(ref T[] array, size_t from, size_t to, Range stuff { // replacement reduces length immutable stuffEnd = from + stuff.length; - array[from .. stuffEnd] = stuff; + array[from .. stuffEnd] = stuff[]; array = remove(array, tuple(stuffEnd, to)); } else @@ -1957,7 +1957,7 @@ body auto result = new T[s.length - slice.length + replacement.length]; immutable so = slice.ptr - s.ptr; result[0 .. so] = s[0 .. so]; - result[so .. so + replacement.length] = replacement; + result[so .. so + replacement.length] = replacement[]; result[so + replacement.length .. result.length] = s[so + slice.length .. s.length]; @@ -2205,9 +2205,9 @@ Appends an entire range to the managed array. immutable len = _data.arr.length; immutable newlen = len + items.length; _data.arr = _data.arr.ptr[0..newlen]; - static if(is(typeof(_data.arr[] = items))) + static if(is(typeof(_data.arr[] = items[]))) { - _data.arr.ptr[len..newlen] = items; + _data.arr.ptr[len..newlen] = items[]; } else { diff --git a/std/digest/md.d b/std/digest/md.d index ead02e5ea..59b01bef8 100644 --- a/std/digest/md.d +++ b/std/digest/md.d @@ -440,8 +440,8 @@ struct MD5 uint index, padLen; //Save number of bits - bits[0 .. 4] = nativeToLittleEndian((cast(uint*)&_count)[0]); - bits[4 .. 8] = nativeToLittleEndian((cast(uint*)&_count)[1]); + bits[0 .. 4] = nativeToLittleEndian((cast(uint*)&_count)[0])[]; + bits[4 .. 8] = nativeToLittleEndian((cast(uint*)&_count)[1])[]; //Pad out to 56 mod 64 index = (cast(uint)_count >> 3) & (64 - 1); @@ -452,10 +452,10 @@ struct MD5 put(bits); //Store state in digest - data[0 .. 4] = nativeToLittleEndian(_state[0]); - data[4 .. 8] = nativeToLittleEndian(_state[1]); - data[8 .. 12] = nativeToLittleEndian(_state[2]); - data[12 .. 16] = nativeToLittleEndian(_state[3]); + data[0 .. 4] = nativeToLittleEndian(_state[0])[]; + data[4 .. 8] = nativeToLittleEndian(_state[1])[]; + data[8 .. 12] = nativeToLittleEndian(_state[2])[]; + data[12 .. 16] = nativeToLittleEndian(_state[3])[]; /* Zeroize sensitive information. */ start(); diff --git a/std/digest/ripemd.d b/std/digest/ripemd.d index 6fbd03ced..db61e9642 100644 --- a/std/digest/ripemd.d +++ b/std/digest/ripemd.d @@ -585,8 +585,8 @@ struct RIPEMD160 uint index, padLen; //Save number of bits - bits[0 .. 4] = nativeToLittleEndian((cast(uint*)&_count)[0]); - bits[4 .. 8] = nativeToLittleEndian((cast(uint*)&_count)[1]); + bits[0 .. 4] = nativeToLittleEndian((cast(uint*)&_count)[0])[]; + bits[4 .. 8] = nativeToLittleEndian((cast(uint*)&_count)[1])[]; //Pad out to 56 mod 64 index = (cast(uint)_count >> 3) & (64 - 1); @@ -597,11 +597,11 @@ struct RIPEMD160 put(bits); //Store state in digest - data[0 .. 4] = nativeToLittleEndian(_state[0]); - data[4 .. 8] = nativeToLittleEndian(_state[1]); - data[8 .. 12] = nativeToLittleEndian(_state[2]); - data[12 .. 16] = nativeToLittleEndian(_state[3]); - data[16 .. 20] = nativeToLittleEndian(_state[4]); + data[0 .. 4] = nativeToLittleEndian(_state[0])[]; + data[4 .. 8] = nativeToLittleEndian(_state[1])[]; + data[8 .. 12] = nativeToLittleEndian(_state[2])[]; + data[12 .. 16] = nativeToLittleEndian(_state[3])[]; + data[16 .. 20] = nativeToLittleEndian(_state[4])[]; /* Zeroize sensitive information. */ start(); diff --git a/std/digest/sha.d b/std/digest/sha.d index 663e984e8..045f258c1 100644 --- a/std/digest/sha.d +++ b/std/digest/sha.d @@ -482,7 +482,7 @@ struct SHA1 /* Store state in digest */ for (auto i = 0; i < 5; i++) - data[i*4..(i+1)*4] = nativeToBigEndian(state[i]); + data[i*4..(i+1)*4] = nativeToBigEndian(state[i])[]; /* Zeroize sensitive information. */ start(); diff --git a/std/outbuffer.d b/std/outbuffer.d index c5093e879..235de7571 100644 --- a/std/outbuffer.d +++ b/std/outbuffer.d @@ -92,7 +92,7 @@ class OutBuffer void write(const(ubyte)[] bytes) { reserve(bytes.length); - data[offset .. offset + bytes.length] = bytes; + data[offset .. offset + bytes.length] = bytes[]; offset += bytes.length; } diff --git a/std/regex.d b/std/regex.d index 92fbdb062..26fb81384 100644 --- a/std/regex.d +++ b/std/regex.d @@ -3785,7 +3785,7 @@ template BacktrackingMatcher(bool CTregex) *cast(State*)&memory[lastState] = State(index, pc, counter, infiniteNesting); lastState += stateSize; - memory[lastState..lastState+2*matches.length] = cast(size_t[])matches[]; + memory[lastState..lastState+2*matches.length] = (cast(size_t[])matches)[]; lastState += 2*matches.length; debug(fred_matching) writefln("Saved(pc=%s) front: %s src: %s" diff --git a/std/string.d b/std/string.d index ea23a5692..71c5d91b4 100644 --- a/std/string.d +++ b/std/string.d @@ -270,7 +270,7 @@ body // Need to make a copy auto copy = new char[s.length + 1]; - copy[0..s.length] = s; + copy[0..s.length] = s[]; copy[s.length] = 0; return assumeUnique(copy).ptr; diff --git a/std/uuid.d b/std/uuid.d index a9df0d3b9..8ffc7ad96 100644 --- a/std/uuid.d +++ b/std/uuid.d @@ -1103,7 +1103,7 @@ UUID randomUUID(RNG)(ref RNG randomGen) if(isUniformRNG!(RNG) && { randomGen.popFront(); immutable randomValue = randomGen.front; - u.data[i .. i + elemSize] = *cast(ubyte[elemSize]*)&randomValue; + u.data[i .. i + elemSize] = (*cast(ubyte[elemSize]*)&randomValue)[]; } //set variant diff --git a/std/zip.d b/std/zip.d index f2b622b66..b3a921b3d 100644 --- a/std/zip.d +++ b/std/zip.d @@ -233,9 +233,9 @@ class ZipArchive putUshort(i + 28, cast(ushort)de.extra.length); i += 30; - data[i .. i + de.name.length] = cast(ubyte[])de.name[]; + data[i .. i + de.name.length] = (cast(ubyte[])de.name)[]; i += de.name.length; - data[i .. i + de.extra.length] = cast(ubyte[])de.extra[]; + data[i .. i + de.extra.length] = (cast(ubyte[])de.extra)[]; i += de.extra.length; data[i .. i + de.compressedSize] = de.compressedData[]; i += de.compressedSize; @@ -264,11 +264,11 @@ class ZipArchive putUint (i + 42, de.offset); i += 46; - data[i .. i + de.name.length] = cast(ubyte[])de.name[]; + data[i .. i + de.name.length] = (cast(ubyte[])de.name)[]; i += de.name.length; - data[i .. i + de.extra.length] = cast(ubyte[])de.extra[]; + data[i .. i + de.extra.length] = (cast(ubyte[])de.extra)[]; i += de.extra.length; - data[i .. i + de.comment.length] = cast(ubyte[])de.comment[]; + data[i .. i + de.comment.length] = (cast(ubyte[])de.comment)[]; i += de.comment.length; numEntries++; } @@ -288,7 +288,7 @@ class ZipArchive // Write archive comment assert(i + comment.length == data.length); - data[i .. data.length] = cast(ubyte[])comment[]; + data[i .. data.length] = (cast(ubyte[])comment)[]; return cast(void[])data; }