summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2021-02-24 08:15:17 +0100
committerDaniel Stenberg <daniel@haxx.se>2021-02-24 14:16:11 +0100
commit0c7d111f4ea7a3e9956d1f23c091824227ba014d (patch)
tree7e71b2900caadaf66837e50167e7af4ab28048f9
parentc7c1e5851ff52578364a14035c01687728778611 (diff)
downloadcurl-0c7d111f4ea7a3e9956d1f23c091824227ba014d.tar.gz
urldata: make 'actions[]' use unsigned char instead of int
... as it only needs a few bits per index anyway. Reviewed-by: Daniel Gustafsson Closes #6648
-rw-r--r--lib/multi.c16
-rw-r--r--lib/urldata.h4
2 files changed, 10 insertions, 10 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 9de3f4008..d3b670c31 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -2526,7 +2526,7 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
curl_socket_t s;
int num;
unsigned int curraction;
- int actions[MAX_SOCKSPEREASYHANDLE];
+ unsigned char actions[MAX_SOCKSPEREASYHANDLE];
for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++)
socks[i] = CURL_SOCKET_BAD;
@@ -2543,9 +2543,9 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
for(i = 0; (i< MAX_SOCKSPEREASYHANDLE) &&
(curraction & (GETSOCK_READSOCK(i) | GETSOCK_WRITESOCK(i)));
i++) {
- unsigned int action = CURL_POLL_NONE;
- unsigned int prevaction = 0;
- unsigned int comboaction;
+ unsigned char action = CURL_POLL_NONE;
+ unsigned char prevaction = 0;
+ int comboaction;
bool sincebefore = FALSE;
s = socks[i];
@@ -2603,10 +2603,10 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
}
comboaction = (entry->writers? CURL_POLL_OUT : 0) |
- (entry->readers ? CURL_POLL_IN : 0);
+ (entry->readers ? CURL_POLL_IN : 0);
/* socket existed before and has the same action set as before */
- if(sincebefore && (entry->action == comboaction))
+ if(sincebefore && ((int)entry->action == comboaction))
/* same, continue */
continue;
@@ -2639,7 +2639,7 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
/* if this is NULL here, the socket has been closed and notified so
already by Curl_multi_closed() */
if(entry) {
- int oldactions = data->actions[i];
+ unsigned char oldactions = data->actions[i];
/* this socket has been removed. Decrease user count */
entry->users--;
if(oldactions & CURL_POLL_OUT)
@@ -2664,7 +2664,7 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
} /* for loop over numsocks */
memcpy(data->sockets, socks, num*sizeof(curl_socket_t));
- memcpy(data->actions, actions, num*sizeof(int));
+ memcpy(data->actions, actions, num*sizeof(char));
data->numsocks = num;
return CURLM_OK;
}
diff --git a/lib/urldata.h b/lib/urldata.h
index 436afc87a..fb37905a7 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -1918,8 +1918,8 @@ struct Curl_easy {
the state etc are also kept. This array is mostly used to detect when a
socket is to be removed from the hash. See singlesocket(). */
curl_socket_t sockets[MAX_SOCKSPEREASYHANDLE];
- int actions[MAX_SOCKSPEREASYHANDLE]; /* action for each socket in
- sockets[] */
+ unsigned char actions[MAX_SOCKSPEREASYHANDLE]; /* action for each socket in
+ sockets[] */
int numsocks;
struct Names dns;