private final void copy() {
		final int length = length();
		if (this.tail < this.head) {
			System.arraycopy(this.content[this.cIdx], this.head,
					this.content[this.cIdxNext], StringBuilder.PATTERN_SIZE,
					length - this.tail);
			System.arraycopy(this.content[this.cIdx], 0,
					this.content[this.cIdxNext], (length - this.tail)
							+ StringBuilder.PATTERN_SIZE, this.tail);

		} else if ((this.head > StringBuilder.PATTERN_SIZE)
				|| (this.head < (StringBuilder.PATTERN_SIZE >> 2))) {
			System.arraycopy(this.content[this.cIdx], this.head,
					this.content[this.cIdxNext], StringBuilder.PATTERN_SIZE,
					length);
		} else {
			return;
		}
		this.head = StringBuilder.PATTERN_SIZE;
		this.tail = this.head + length;
		switchBuffer();
	}