Merge "Fix const-ness of strrchr callers."

This commit is contained in:
Elliott Hughes 2015-07-28 21:15:57 +00:00 committed by Gerrit Code Review
commit 1a70686530
6 changed files with 19 additions and 20 deletions

View File

@ -72,16 +72,17 @@ std::string escape_arg(const std::string& s) {
return result;
}
int mkdirs(const char *path)
{
int mkdirs(const std::string& path) {
// TODO: rewrite this function and merge it with the *other* mkdirs in adb.
std::unique_ptr<char> path_rw(strdup(path.c_str()));
int ret;
char *x = (char *)path + 1;
char* x = path_rw.get() + 1;
for(;;) {
x = adb_dirstart(x);
x = const_cast<char*>(adb_dirstart(x));
if(x == 0) return 0;
*x = 0;
ret = adb_mkdir(path, 0775);
ret = adb_mkdir(path_rw.get(), 0775);
*x = OS_PATH_SEPARATOR;
if((ret < 0) && (errno != EEXIST)) {
return ret;

View File

@ -22,7 +22,7 @@
bool getcwd(std::string* cwd);
bool directory_exists(const std::string& path);
int mkdirs(const char *path);
int mkdirs(const std::string& path);
std::string escape_arg(const std::string& s);

View File

@ -487,8 +487,8 @@ static int adb_download_buffer(const char *service, const char *fn, const void*
const uint8_t* ptr = reinterpret_cast<const uint8_t*>(data);
if (show_progress) {
char *x = strrchr(service, ':');
if(x) service = x + 1;
const char* x = strrchr(service, ':');
if (x) service = x + 1;
}
while (sz > 0) {
@ -1496,7 +1496,7 @@ static int install_app(TransportType transport, const char* serial, int argc, co
int last_apk = -1;
for (i = argc - 1; i >= 0; i--) {
const char* file = argv[i];
char* dot = strrchr(file, '.');
const char* dot = strrchr(file, '.');
if (dot && !strcasecmp(dot, ".apk")) {
if (stat(file, &sb) == -1 || !S_ISREG(sb.st_mode)) {
fprintf(stderr, "Invalid APK file: %s\n", file);
@ -1542,7 +1542,7 @@ static int install_multiple_app(TransportType transport, const char* serial, int
int first_apk = -1;
for (i = argc - 1; i >= 0; i--) {
const char* file = argv[i];
char* dot = strrchr(file, '.');
const char* dot = strrchr(file, '.');
if (dot && !strcasecmp(dot, ".apk")) {
if (stat(file, &sb) == -1 || !S_ISREG(sb.st_mode)) {
fprintf(stderr, "Invalid APK file: %s\n", file);

View File

@ -53,7 +53,7 @@ static int mkdirs(char *name)
if(name[0] != '/') return -1;
for(;;) {
x = adb_dirstart(x);
x = const_cast<char*>(adb_dirstart(x));
if(x == 0) return 0;
*x = 0;
if (should_use_fs_config(name)) {

View File

@ -247,10 +247,10 @@ static __inline__ char* adb_dirstart( const char* path )
return p;
}
static __inline__ char* adb_dirstop( const char* path )
static __inline__ const char* adb_dirstop( const char* path )
{
char* p = strrchr(path, '/');
char* p2 = strrchr(path, '\\');
const char* p = strrchr(path, '/');
const char* p2 = strrchr(path, '\\');
if ( !p )
p = p2;
@ -521,12 +521,12 @@ static __inline__ void adb_sysdeps_init(void)
{
}
static __inline__ char* adb_dirstart(const char* path)
static __inline__ const char* adb_dirstart(const char* path)
{
return strchr(path, '/');
}
static __inline__ char* adb_dirstop(const char* path)
static __inline__ const char* adb_dirstop(const char* path)
{
return strrchr(path, '/');
}

View File

@ -264,14 +264,12 @@ static void find_usb_device(const std::string& base,
// Determine the device path
if (!fstat(fd, &st) && S_ISCHR(st.st_mode)) {
char *slash;
ssize_t link_len;
snprintf(pathbuf, sizeof(pathbuf), "/sys/dev/char/%d:%d",
major(st.st_rdev), minor(st.st_rdev));
link_len = readlink(pathbuf, link, sizeof(link) - 1);
ssize_t link_len = readlink(pathbuf, link, sizeof(link) - 1);
if (link_len > 0) {
link[link_len] = '\0';
slash = strrchr(link, '/');
const char* slash = strrchr(link, '/');
if (slash) {
snprintf(pathbuf, sizeof(pathbuf),
"usb:%s", slash + 1);