From 65f03e507f7eece690a0e6a05ab6f0408dbcbcb2 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 25 Apr 2023 18:04:46 +0200 Subject: urldata: shrink *select_bits int => unsigned char - dselect_bits - cselect_bits ... are using less than 8 bits. Changed types and moved them towards the end of the structs to fit better. Closes #11025 --- lib/http2.c | 2 +- lib/multi.c | 2 +- lib/urldata.h | 20 ++++++++++---------- lib/vquic/curl_msh3.c | 4 ++-- lib/vquic/curl_ngtcp2.c | 2 +- lib/vquic/curl_quiche.c | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/http2.c b/lib/http2.c index 62eed3c35..4ce618a5b 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -193,7 +193,7 @@ static void drain_stream(struct Curl_cfilter *cf, struct Curl_easy *data, struct stream_ctx *stream) { - int bits; + unsigned char bits; (void)cf; bits = CURL_CSELECT_IN; diff --git a/lib/multi.c b/lib/multi.c index 0be8d0c40..441435628 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -3222,7 +3222,7 @@ static CURLMcode multi_socket(struct Curl_multi *multi, if(data->conn && !(data->conn->handler->flags & PROTOPT_DIRLOCK)) /* set socket event bitmask if they're not locked */ - data->conn->cselect_bits = ev_bitmask; + data->conn->cselect_bits = (unsigned char)ev_bitmask; Curl_expire(data, 0, EXPIRE_RUN_NOW); } diff --git a/lib/urldata.h b/lib/urldata.h index d93ee9706..f02e66541 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -1049,7 +1049,6 @@ struct connectdata { wrong connections. */ char *localdev; unsigned short localportrange; - int cselect_bits; /* bitmask of socket events */ int waitfor; /* current READ/WRITE bits to wait for */ #if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) int socks5_gssapi_enctype; @@ -1065,6 +1064,7 @@ struct connectdata { unsigned short localport; unsigned short secondary_port; /* secondary socket remote port to connect to (ftp) */ + unsigned char cselect_bits; /* bitmask of socket events */ unsigned char alpn; /* APLN TLS negotiated protocol, a CURL_HTTP_VERSION* value */ #ifndef CURL_DISABLE_PROXY @@ -1319,8 +1319,6 @@ struct UrlState { char *scratch; /* huge buffer[set.buffer_size*2] for upload CRLF replacing */ long followlocation; /* redirect counter */ int requests; /* request counter: redirects + authentication retakes */ - int dselect_bits; /* != 0 -> bitmask of socket events for this transfer - * overriding anything the socket may report */ #ifdef HAVE_SIGNAL /* storage for the previous bag^H^H^HSIGPIPE signal handler :-) */ void (*prev_signal)(int sig); @@ -1346,11 +1344,6 @@ struct UrlState { /* a place to store the most recently set (S)FTP entrypath */ char *most_recent_ftp_entrypath; - unsigned char httpwant; /* when non-zero, a specific HTTP version requested - to be used in the library's request(s) */ - unsigned char httpversion; /* the lowest HTTP version*10 reported by any - server involved in this request */ - #if !defined(WIN32) && !defined(MSDOS) && !defined(__EMX__) /* do FTP line-end conversions on most platforms */ #define CURL_DO_LINEEND_CONV @@ -1383,8 +1376,6 @@ struct UrlState { void *in; /* CURLOPT_READDATA */ CURLU *uh; /* URL handle for the current parsed URL */ struct urlpieces up; - unsigned char httpreq; /* Curl_HttpReq; what kind of HTTP request (if any) - is this */ char *url; /* work URL, copied from UserDefined */ char *referer; /* referer string */ struct curl_slist *resolve; /* set to point to the set.resolve list when @@ -1425,6 +1416,15 @@ struct UrlState { char *proxypasswd; } aptr; + unsigned char httpwant; /* when non-zero, a specific HTTP version requested + to be used in the library's request(s) */ + unsigned char httpversion; /* the lowest HTTP version*10 reported by any + server involved in this request */ + unsigned char httpreq; /* Curl_HttpReq; what kind of HTTP request (if any) + is this */ + unsigned char dselect_bits; /* != 0 -> bitmask of socket events for this + transfer overriding anything the socket may + report */ #ifdef CURLDEBUG BIT(conncache_lock); #endif diff --git a/lib/vquic/curl_msh3.c b/lib/vquic/curl_msh3.c index 7d23f9f5b..438a60d47 100644 --- a/lib/vquic/curl_msh3.c +++ b/lib/vquic/curl_msh3.c @@ -192,7 +192,7 @@ static void h3_data_done(struct Curl_cfilter *cf, struct Curl_easy *data) static void drain_stream_from_other_thread(struct Curl_easy *data, struct stream_ctx *stream) { - int bits; + unsigned char bits; /* risky */ bits = CURL_CSELECT_IN; @@ -208,7 +208,7 @@ static void drain_stream(struct Curl_cfilter *cf, struct Curl_easy *data) { struct stream_ctx *stream = H3_STREAM_CTX(data); - int bits; + unsigned char bits; (void)cf; bits = CURL_CSELECT_IN; diff --git a/lib/vquic/curl_ngtcp2.c b/lib/vquic/curl_ngtcp2.c index 6eee431cc..c76c67444 100644 --- a/lib/vquic/curl_ngtcp2.c +++ b/lib/vquic/curl_ngtcp2.c @@ -994,7 +994,7 @@ static void drain_stream(struct Curl_cfilter *cf, struct Curl_easy *data) { struct stream_ctx *stream = H3_STREAM_CTX(data); - int bits; + unsigned char bits; (void)cf; bits = CURL_CSELECT_IN; diff --git a/lib/vquic/curl_quiche.c b/lib/vquic/curl_quiche.c index e32cc366d..ff3f8f4ec 100644 --- a/lib/vquic/curl_quiche.c +++ b/lib/vquic/curl_quiche.c @@ -303,7 +303,7 @@ static void drain_stream(struct Curl_cfilter *cf, struct Curl_easy *data) { struct stream_ctx *stream = H3_STREAM_CTX(data); - int bits; + unsigned char bits; (void)cf; bits = CURL_CSELECT_IN; -- cgit v1.2.1