Micro optimizations welcome?

Yong Bakos junk at humanoriented.com
Sun Sep 18 01:03:13 UTC 2016


On Sep 17, 2016, at 5:42 PM, Ursache Vladimir <f35f22fan at gmail.com> wrote:
> 
> Hi,
> On amd64 struct wl_display from wayland-client.c can shrink in size
> from 320 bytes to 304 if two fields (last_error and id) are
> rearranged. Compiles fine.

I believe you mean last_error and protocol_error.
This will change the ABI (did you try an ABI check?) and we can't do
that at this time.

yong



> End result looks like this:
> 
> struct wl_display {
>    struct wl_proxy proxy;
>    struct wl_connection *connection;
> 
>    /* When display gets an error event from some object, it stores
>     * information about it here, so that client can get this
>     * information afterwards */
>    struct {
>        /* Code of the error. It can be compared to
>         * the interface's errors enumeration. */
>        uint32_t code;
>        /* id of the proxy that caused the error. There's no warranty
>         * that the proxy is still valid. It's up to client how it will
>         * use it */
>        uint32_t id;
>        /* interface (protocol) in which the error occurred */
>        const struct wl_interface *interface;
>    } protocol_error;
>    /* errno of the last wl_display error */
>    int last_error;
>    int fd;
>    struct wl_map objects;
>    struct wl_event_queue display_queue;
>    struct wl_event_queue default_queue;
>    pthread_mutex_t mutex;
> 
>    int reader_count;
>    uint32_t read_serial;
>    pthread_cond_t reader_cond;
> };
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list