First lines of StringArray::joinIntoString function body:
const int last = (numberToJoin < 0) ? size() // <----------- HERE (A)
: jmin (size(), start + numberToJoin);
if (start < 0)
start = 0;
if (start >= last)
return String::empty;
if (start == last - 1) // <---------- HERE (B)
return *(const String*)(strings.getLast());
I suppose the test in (B) should be:
if (start == last)
because with 2 element arrays and with start=0 and numberToJoin=1 then the function is returning the last element, not the first one as it should.
Also, I suppose the calculation of ‘last’ (A) is wrong and that ti should be like this:
const int last = (numberToJoin < 0) ? size()-1
: jmin (size()-1, start + numberToJoin);
… (notice the "-1"s) so that it will point to the last element of the array.
Am I out for track?
Toot