| Index: src/flags.cc
 | 
| diff --git a/src/flags.cc b/src/flags.cc
 | 
| index d444c976fbbc9c6ca723ccf06cb28cb1401a1644..bbe6bb720e573779fd5f2a44940876c52c9e90ab 100644
 | 
| --- a/src/flags.cc
 | 
| +++ b/src/flags.cc
 | 
| @@ -470,12 +470,12 @@ static char* SkipBlackSpace(char* p) {
 | 
|  // static
 | 
|  int FlagList::SetFlagsFromString(const char* str, int len) {
 | 
|    // make a 0-terminated copy of str
 | 
| -  char* copy0 = NewArray<char>(len + 1);
 | 
| -  memcpy(copy0, str, len);
 | 
| +  ScopedVector<char> copy0(len + 1);
 | 
| +  memcpy(copy0.start(), str, len);
 | 
|    copy0[len] = '\0';
 | 
|  
 | 
|    // strip leading white space
 | 
| -  char* copy = SkipWhiteSpace(copy0);
 | 
| +  char* copy = SkipWhiteSpace(copy0.start());
 | 
|  
 | 
|    // count the number of 'arguments'
 | 
|    int argc = 1;  // be compatible with SetFlagsFromCommandLine()
 | 
| @@ -485,7 +485,7 @@ int FlagList::SetFlagsFromString(const char* str, int len) {
 | 
|    }
 | 
|  
 | 
|    // allocate argument array
 | 
| -  char** argv = NewArray<char*>(argc);
 | 
| +  ScopedVector<char*> argv(argc);
 | 
|  
 | 
|    // split the flags string into arguments
 | 
|    argc = 1;  // be compatible with SetFlagsFromCommandLine()
 | 
| @@ -497,11 +497,7 @@ int FlagList::SetFlagsFromString(const char* str, int len) {
 | 
|    }
 | 
|  
 | 
|    // set the flags
 | 
| -  int result = SetFlagsFromCommandLine(&argc, argv, false);
 | 
| -
 | 
| -  // cleanup
 | 
| -  DeleteArray(argv);
 | 
| -  DeleteArray(copy0);
 | 
| +  int result = SetFlagsFromCommandLine(&argc, argv.start(), false);
 | 
|  
 | 
|    return result;
 | 
|  }
 | 
| 
 |