Compare commits

...

7 commits

Author SHA1 Message Date
Ruslan Garipov
0642a778d9 Merge branch 'handler_fd_ops' into 'master'
Fix initialization of the handler_fd_ops

See merge request wine/wine!5503
2024-11-16 10:54:25 +00:00
Ruslan Garipov
23a17e2c5b
Fix initialization of the msg_queue_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
msg_queue_fd_ops in server/queue.c -- is being initialized.

For motivation behind this patch please read message of commit
0bd610a1680 (Fix initialization of the handler_fd_ops, 2024-04-16).

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
Ruslan Garipov
ad050518e9
Fix initialization of the process_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
process_fd_ops in server/process.c -- is being initialized.

For motivation behind this patch please read message of commit
0bd610a1680 (Fix initialization of the handler_fd_ops, 2024-04-16).

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
Ruslan Garipov
a27bcafff6
Fix initialization of the thread_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
thread_fd_ops in server/thread.c -- is being initialized.

For motivation behind this patch please read message of commit
0bd610a1680 (Fix initialization of the handler_fd_ops, 2024-04-16).

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
Ruslan Garipov
8b373293b9
Fix initialization of the inotify_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
inotify_fd_ops in server/change.c -- is being initialized.

For motivation behind this patch please read message of commit
0bd610a1680 (Fix initialization of the handler_fd_ops, 2024-04-16).

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
Ruslan Garipov
f06f9d5605
Fix initialization of the master_socket_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
master_socket_fd_ops in server/request.c -- is being initialized.

For motivation behind this patch please read message of the previous
commit 0bd610a1680 (Fix initialization of the handler_fd_ops,
2024-04-16).

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
Ruslan Garipov
2d4c7a720d
Fix initialization of the handler_fd_ops
This lists all fields of the `struct fd_ops' when object of that type --
handler_fd_ops in server/signal.c -- is being initialized.

It looks like field list in initialization of the handler_fd_ops in
server/signal.c was out-of-sync for a long time.  Take a look, for
example, on patches ad1e0609a0 (server: Get rid of no loner used
cancel_async from fd_ops., 2016-12-01) (which removed "reference" to the
cancel_async field correctly, but did not add "references" to the read
and write fields, for example), or 837b39b202 (server: Add read and
write fd member functions., 2015-05-05) (which updated `struct fd_ops'
but did not change initialization of the handler_fd_ops at all).

Because the main purpose of initialization of the handler_fd_ops made in
server/signal.c is to assign address of the handler_poll_event()
function to the poll_event field, while making all other fields NULLed,
lacking some fields in that initialization is not an error according to
C standard:

> 6.7.11 Initialization
>
> 11 ... If an object that has static or thread storage duration is not
> initialized explicitly, or any object is initialized with an empty
> initializer, then it is subject to default initialization, which
> initializes an object as follows:
>
>   - if it has pointer type, it is initialized to a null pointer;
> ...
> 22 If there are fewer initializers in a brace-enclosed list than there
> are elements or members of an aggregate, or fewer characters in a
> string literal used to initialize an array of known size than there
> are elements in the array, the remainder of the aggregate is subject
> to default initialization.

But to maintain code consistency I believe initialization of the
handler_fd_ops object should enumerate all fields of the
`struct fd_ops' type.

No functional changes intended.

Signed-off-by: Ruslan Garipov <ruslanngaripov@gmail.com>
2024-08-09 06:15:52 +05:00
6 changed files with 38 additions and 10 deletions

View file

@ -644,9 +644,14 @@ static const struct fd_ops inotify_fd_ops =
{
inotify_get_poll_events, /* get_poll_events */
inotify_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL /* reselect_async */
};

View file

@ -125,12 +125,16 @@ static const struct fd_ops process_fd_ops =
{
NULL, /* get_poll_events */
process_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL, /* reselect_async */
NULL /* cancel async */
NULL /* reselect_async */
};
/* process startup info */

View file

@ -184,12 +184,16 @@ static const struct fd_ops msg_queue_fd_ops =
{
NULL, /* get_poll_events */
msg_queue_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL, /* reselect_async */
NULL /* cancel async */
NULL /* reselect_async */
};

View file

@ -109,9 +109,14 @@ static const struct fd_ops master_socket_fd_ops =
{
NULL, /* get_poll_events */
master_socket_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL /* reselect_async */
};

View file

@ -84,9 +84,14 @@ static const struct fd_ops handler_fd_ops =
{
NULL, /* get_poll_events */
handler_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL /* reselect_async */
};

View file

@ -207,9 +207,14 @@ static const struct fd_ops thread_fd_ops =
{
NULL, /* get_poll_events */
thread_poll_event, /* poll_event */
NULL, /* flush */
NULL, /* get_fd_type */
NULL, /* read */
NULL, /* write */
NULL, /* flush */
NULL, /* get_file_info */
NULL, /* get_volume_info */
NULL, /* ioctl */
NULL, /* cancel_async */
NULL, /* queue_async */
NULL /* reselect_async */
};