@@ -50,6 +50,7 @@ struct addrinfo {
50
50
#include < cstdlib>
51
51
#include < cstring>
52
52
#include < iostream>
53
+ #include < memory>
53
54
#include < string>
54
55
55
56
// Include automatically generated configuration file if running autoconf.
@@ -147,7 +148,7 @@ void SVSync::StartProcess(const char* executable, const char* args) {
147
148
++argc;
148
149
}
149
150
}
150
- char ** argv = new char *[argc + 2 ];
151
+ std::unique_ptr< char *[]> argv ( new char *[argc + 2 ]) ;
151
152
argv[0 ] = strdup (executable);
152
153
argv[1 ] = mutable_args;
153
154
argc = 2 ;
@@ -162,10 +163,9 @@ void SVSync::StartProcess(const char* executable, const char* args) {
162
163
}
163
164
}
164
165
argv[argc] = nullptr ;
165
- execvp (executable, argv);
166
+ execvp (executable, argv. get () );
166
167
free (argv[0 ]);
167
168
free (argv[1 ]);
168
- delete[] argv;
169
169
}
170
170
#endif
171
171
}
@@ -311,12 +311,11 @@ static std::string ScrollViewCommand(std::string scrollview_path) {
311
311
" -Xms1024m -Xmx2048m -jar %s/ScrollView.jar"
312
312
" & wait\" " ;
313
313
#endif
314
- int cmdlen = strlen (cmd_template) + 4 * strlen (scrollview_path.c_str ()) + 1 ;
315
- char * cmd = new char [cmdlen];
314
+ size_t cmdlen = strlen (cmd_template) + 4 * strlen (scrollview_path.c_str ()) + 1 ;
315
+ std::unique_ptr< char []> cmd ( new char [cmdlen]) ;
316
316
const char * sv_path = scrollview_path.c_str ();
317
- snprintf (cmd, cmdlen, cmd_template, sv_path, sv_path, sv_path, sv_path);
318
- std::string command (cmd);
319
- delete [] cmd;
317
+ snprintf (cmd.get (), cmdlen, cmd_template, sv_path, sv_path, sv_path, sv_path);
318
+ std::string command (cmd.get ());
320
319
return command;
321
320
}
322
321
0 commit comments