Index: src/gpu/gl/GrGLExtensions.cpp |
=================================================================== |
--- src/gpu/gl/GrGLExtensions.cpp (revision 8037) |
+++ src/gpu/gl/GrGLExtensions.cpp (working copy) |
@@ -51,27 +51,20 @@ |
if (NULL == extensions) { |
return false; |
} |
- // First count the extensions so that we don't cause the array to malloc multiple times. |
- int extensionCnt = 1; |
- const char* e = (const char*) extensions; |
- while (NULL != (e = strchr(e+1, ' '))) { |
- e += 1; |
- ++extensionCnt; |
- } |
- fStrings.push_back_n(extensionCnt); |
- |
- int i = 0; |
while (true) { |
- size_t length = strcspn(extensions, " "); |
- GrAssert(i < extensionCnt); |
- fStrings[i].set(extensions, length); |
- ++i; |
- if ('\0' == extensions[length]) { |
+ // skip over multiple spaces between extensions |
+ while (' ' == *extensions) { |
+ ++extensions; |
+ } |
+ // quit once we reach the end of the string. |
+ if ('\0' == *extensions) { |
break; |
} |
- extensions += length + 1; |
+ // we found an extension |
+ size_t length = strcspn(extensions, " "); |
+ fStrings.push_back().set(extensions, length); |
+ extensions += length; |
} |
- GrAssert(i == extensionCnt); |
} |
SkTSearchCompareLTFunctor<SkString, extension_compare> cmp; |
SkTQSort(&fStrings.front(), &fStrings.back(), cmp); |