Fix string assert and dead code which caused it.
Running tools with a '--' parameter caused SkString to assert here incorrectly. SkString::remove should allow the entire contents of a string to be removed. The code in the flags parser which caused this call is dead and should be removed. R=mtklein@google.com, reed@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/453333002
This commit is contained in:
parent
872e3dc89d
commit
dfb9bc41a2
@ -589,24 +589,22 @@ void SkString::remove(size_t offset, size_t length) {
|
|||||||
size_t size = this->size();
|
size_t size = this->size();
|
||||||
|
|
||||||
if (offset < size) {
|
if (offset < size) {
|
||||||
if (offset + length > size) {
|
if (length > size - offset) {
|
||||||
length = size - offset;
|
length = size - offset;
|
||||||
}
|
}
|
||||||
|
SkASSERT(length <= size);
|
||||||
|
SkASSERT(offset <= size - length);
|
||||||
if (length > 0) {
|
if (length > 0) {
|
||||||
SkASSERT(size > length);
|
|
||||||
SkString tmp(size - length);
|
SkString tmp(size - length);
|
||||||
char* dst = tmp.writable_str();
|
char* dst = tmp.writable_str();
|
||||||
const char* src = this->c_str();
|
const char* src = this->c_str();
|
||||||
|
|
||||||
if (offset) {
|
if (offset) {
|
||||||
SkASSERT(offset <= tmp.size());
|
|
||||||
memcpy(dst, src, offset);
|
memcpy(dst, src, offset);
|
||||||
}
|
}
|
||||||
size_t tail = size - offset - length;
|
size_t tail = size - (offset + length);
|
||||||
SkASSERT((int32_t)tail >= 0);
|
|
||||||
if (tail) {
|
if (tail) {
|
||||||
// SkASSERT(offset + length <= tmp.size());
|
memcpy(dst + offset, src + (offset + length), tail);
|
||||||
memcpy(dst + offset, src + offset + length, tail);
|
|
||||||
}
|
}
|
||||||
SkASSERT(dst[tmp.size()] == 0);
|
SkASSERT(dst[tmp.size()] == 0);
|
||||||
this->swap(tmp);
|
this->swap(tmp);
|
||||||
|
@ -287,10 +287,6 @@ void SkCommandLineFlags::Parse(int argc, char** argv) {
|
|||||||
flag = flag->next();
|
flag = flag->next();
|
||||||
}
|
}
|
||||||
if (!flagMatched) {
|
if (!flagMatched) {
|
||||||
SkString stripped(argv[i]);
|
|
||||||
while (stripped.startsWith('-')) {
|
|
||||||
stripped.remove(0, 1);
|
|
||||||
}
|
|
||||||
if (!FLAGS_undefok) {
|
if (!FLAGS_undefok) {
|
||||||
SkDebugf("Got unknown flag \"%s\". Exiting.\n", argv[i]);
|
SkDebugf("Got unknown flag \"%s\". Exiting.\n", argv[i]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
Loading…
Reference in New Issue
Block a user