Browse Source

Fix cast from pointer to int of different size (#1405)

Addresses -Wpointer-to-int-cast compiler warnings.
nilason 4 years ago
parent
commit
03d5e48411
1 changed files with 9 additions and 8 deletions
  1. 9 8
      lib/gis/spawn.c

+ 9 - 8
lib/gis/spawn.c

@@ -732,6 +732,7 @@ static void begin_spawn(struct spawn *sp)
 }
 }
 
 
 #define NEXT_ARG(var, type) ((type) *(var)++)
 #define NEXT_ARG(var, type) ((type) *(var)++)
+#define NEXT_ARG_INT(var) (int)((intptr_t) *(var)++)
 
 
 static void parse_argvec(struct spawn *sp, const char **va)
 static void parse_argvec(struct spawn *sp, const char **va)
 {
 {
@@ -744,32 +745,32 @@ static void parse_argvec(struct spawn *sp, const char **va)
 	    break;
 	    break;
 	}
 	}
 	else if (arg == SF_REDIRECT_FILE) {
 	else if (arg == SF_REDIRECT_FILE) {
-	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG(va, int);
+	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG_INT(va);
 
 
 	    sp->redirects[sp->num_redirects].src_fd = -1;
 	    sp->redirects[sp->num_redirects].src_fd = -1;
-	    sp->redirects[sp->num_redirects].mode = NEXT_ARG(va, int);
+	    sp->redirects[sp->num_redirects].mode = NEXT_ARG_INT(va);
 	    sp->redirects[sp->num_redirects].file = NEXT_ARG(va, const char *);
 	    sp->redirects[sp->num_redirects].file = NEXT_ARG(va, const char *);
 
 
 	    sp->num_redirects++;
 	    sp->num_redirects++;
 	}
 	}
 	else if (arg == SF_REDIRECT_DESCRIPTOR) {
 	else if (arg == SF_REDIRECT_DESCRIPTOR) {
-	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG(va, int);
-	    sp->redirects[sp->num_redirects].src_fd = NEXT_ARG(va, int);
+	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG_INT(va);
+	    sp->redirects[sp->num_redirects].src_fd = NEXT_ARG_INT(va);
 
 
 	    sp->redirects[sp->num_redirects].file = NULL;
 	    sp->redirects[sp->num_redirects].file = NULL;
 	    sp->num_redirects++;
 	    sp->num_redirects++;
 	}
 	}
 	else if (arg == SF_CLOSE_DESCRIPTOR) {
 	else if (arg == SF_CLOSE_DESCRIPTOR) {
-	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG(va, int);
+	    sp->redirects[sp->num_redirects].dst_fd = NEXT_ARG_INT(va);
 
 
 	    sp->redirects[sp->num_redirects].src_fd = -1;
 	    sp->redirects[sp->num_redirects].src_fd = -1;
 	    sp->redirects[sp->num_redirects].file = NULL;
 	    sp->redirects[sp->num_redirects].file = NULL;
 	    sp->num_redirects++;
 	    sp->num_redirects++;
 	}
 	}
 	else if (arg == SF_SIGNAL) {
 	else if (arg == SF_SIGNAL) {
-	    sp->signals[sp->num_signals].which = NEXT_ARG(va, int);
-	    sp->signals[sp->num_signals].action = NEXT_ARG(va, int);
-	    sp->signals[sp->num_signals].signum = NEXT_ARG(va, int);
+	    sp->signals[sp->num_signals].which = NEXT_ARG_INT(va);
+	    sp->signals[sp->num_signals].action = NEXT_ARG_INT(va);
+	    sp->signals[sp->num_signals].signum = NEXT_ARG_INT(va);
 
 
 	    sp->signals[sp->num_signals].valid = 0;
 	    sp->signals[sp->num_signals].valid = 0;
 	    sp->num_signals++;
 	    sp->num_signals++;