Fixed error in SkOSMenu
authoryangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 5 Aug 2011 22:37:18 +0000 (22:37 +0000)
committeryangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 5 Aug 2011 22:37:18 +0000 (22:37 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@2056 2bbb7eff-a529-9590-31e7-b0007b416f81

src/views/SkOSMenu.cpp

index 8137365d00a6c8eb0ab66179b9e0a3462b5fab14..ce3894aeb4225b839f716ba59071506898063ade 100644 (file)
@@ -189,14 +189,15 @@ bool SkOSMenu::FindListItemCount(const SkEvent* evt, int* count) {
 bool SkOSMenu::FindListItems(const SkEvent* evt, SkString items[]) {
     if (evt->isType(gMenuEventType) && NULL != items) {
         const char* text = evt->findString(gList_Items_Str);
-        char temp[strlen(text)];
-        memcpy(temp, text, strlen(text) + 1); //make sure to copy the null terminator
-        char* token = strtok(temp, gDelimiter);
-        int index = 0;
-        while (token != NULL) {
-            items[index].set(token, strlen(token));
-            token = strtok (NULL, gDelimiter);
-            ++index;
+        if (text != NULL) {
+            SkString temp(text);
+            char* token = strtok((char*)temp.c_str(), gDelimiter);
+            int index = 0;
+            while (token != NULL) {
+                items[index].set(token, strlen(token));
+                token = strtok (NULL, gDelimiter);
+                ++index;
+            }
         }
         return true;
     }