Unified multiple definitions of container_of() macro.
Removed duplicate definitions of the container_of() macro and refactored sources to use the single implementation. Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
This commit is contained in:
committed by
Bryce Harrington
parent
d618f688d5
commit
867d50eea7
@@ -40,6 +40,7 @@
|
|||||||
#include <wayland-client.h>
|
#include <wayland-client.h>
|
||||||
|
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct clickdot {
|
struct clickdot {
|
||||||
struct display *display;
|
struct display *display;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "shared/cairo-util.h"
|
#include "shared/cairo-util.h"
|
||||||
#include "shared/config-parser.h"
|
#include "shared/config-parser.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
#include "desktop-shell-client-protocol.h"
|
#include "desktop-shell-client-protocol.h"
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,6 @@
|
|||||||
#include "shared/zalloc.h"
|
#include "shared/zalloc.h"
|
||||||
#include "shared/platform.h"
|
#include "shared/platform.h"
|
||||||
|
|
||||||
#define container_of(ptr, type, member) ({ \
|
|
||||||
const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
|
|
||||||
(type *)( (char *)__mptr - offsetof(type,member) );})
|
|
||||||
|
|
||||||
struct window;
|
struct window;
|
||||||
struct widget;
|
struct widget;
|
||||||
struct display;
|
struct display;
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct exposay_surface {
|
struct exposay_surface {
|
||||||
struct desktop_shell *shell;
|
struct desktop_shell *shell;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
#include "desktop-shell-server-protocol.h"
|
#include "desktop-shell-server-protocol.h"
|
||||||
#include "input-method-server-protocol.h"
|
#include "input-method-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct input_panel_surface {
|
struct input_panel_surface {
|
||||||
struct wl_resource *resource;
|
struct wl_resource *resource;
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "fullscreen-shell-server-protocol.h"
|
#include "fullscreen-shell-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct fullscreen_shell {
|
struct fullscreen_shell {
|
||||||
struct wl_client *client;
|
struct wl_client *client;
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
|
|
||||||
#include "ivi-layout-export.h"
|
#include "ivi-layout-export.h"
|
||||||
#include "ivi-hmi-controller-server-protocol.h"
|
#include "ivi-hmi-controller-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* structure, globals
|
* structure, globals
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include "ivi-shell.h"
|
#include "ivi-shell.h"
|
||||||
#include "input-method-server-protocol.h"
|
#include "input-method-server-protocol.h"
|
||||||
#include "ivi-layout-private.h"
|
#include "ivi-layout-private.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct input_panel_surface {
|
struct input_panel_surface {
|
||||||
struct wl_resource *resource;
|
struct wl_resource *resource;
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
#include "ivi-layout-export.h"
|
#include "ivi-layout-export.h"
|
||||||
#include "ivi-layout-private.h"
|
#include "ivi-layout-private.h"
|
||||||
|
|
||||||
|
#include "shared/helpers.h"
|
||||||
#include "shared/os-compatibility.h"
|
#include "shared/os-compatibility.h"
|
||||||
|
|
||||||
struct link_layer {
|
struct link_layer {
|
||||||
|
|||||||
@@ -39,10 +39,7 @@
|
|||||||
|
|
||||||
#include <wayland-util.h>
|
#include <wayland-util.h>
|
||||||
#include "config-parser.h"
|
#include "config-parser.h"
|
||||||
|
#include "helpers.h"
|
||||||
#define container_of(ptr, type, member) ({ \
|
|
||||||
const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
|
|
||||||
(type *)( (char *)__mptr - offsetof(type,member) );})
|
|
||||||
|
|
||||||
struct weston_config_entry {
|
struct weston_config_entry {
|
||||||
char *key;
|
char *key;
|
||||||
|
|||||||
@@ -52,6 +52,43 @@ extern "C" {
|
|||||||
#define MIN(x,y) (((x) < (y)) ? (x) : (y))
|
#define MIN(x,y) (((x) < (y)) ? (x) : (y))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a pointer the the containing struct of a given member item.
|
||||||
|
*
|
||||||
|
* To demonstrate, the following example retrieves a pointer to
|
||||||
|
* `example_container` given only its `destroy_listener` member:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* struct example_container {
|
||||||
|
* struct wl_listener destroy_listener;
|
||||||
|
* // other members...
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* void example_container_destroy(struct wl_listener *listener, void *data)
|
||||||
|
* {
|
||||||
|
* struct example_container *ctr;
|
||||||
|
*
|
||||||
|
* ctr = wl_container_of(listener, ctr, destroy_listener);
|
||||||
|
* // destroy ctr...
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param ptr A valid pointer to the contained item.
|
||||||
|
*
|
||||||
|
* @param type A pointer to the type of content that the list item
|
||||||
|
* stores. Type does not need be a valid pointer; a null or
|
||||||
|
* an uninitialised pointer will suffice.
|
||||||
|
*
|
||||||
|
* @param member The named location of ptr within the sample type.
|
||||||
|
*
|
||||||
|
* @return The container for the specified pointer.
|
||||||
|
*/
|
||||||
|
#ifndef container_of
|
||||||
|
#define container_of(ptr, type, member) ({ \
|
||||||
|
const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
|
||||||
|
(type *)( (char *)__mptr - offsetof(type,member) );})
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
WL_EXPORT void
|
WL_EXPORT void
|
||||||
weston_spring_init(struct weston_spring *spring,
|
weston_spring_init(struct weston_spring *spring,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct weston_binding {
|
struct weston_binding {
|
||||||
uint32_t key;
|
uint32_t key;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct clipboard_source {
|
struct clipboard_source {
|
||||||
struct weston_data_source base;
|
struct weston_data_source base;
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "cms-helper.h"
|
#include "cms-helper.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct cms_colord {
|
struct cms_colord {
|
||||||
struct weston_compositor *ec;
|
struct weston_compositor *ec;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "cms-helper.h"
|
#include "cms-helper.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct cms_static {
|
struct cms_static {
|
||||||
struct weston_compositor *ec;
|
struct weston_compositor *ec;
|
||||||
|
|||||||
@@ -45,10 +45,6 @@ extern "C" {
|
|||||||
#include "zalloc.h"
|
#include "zalloc.h"
|
||||||
#include "timeline-object.h"
|
#include "timeline-object.h"
|
||||||
|
|
||||||
#define container_of(ptr, type, member) ({ \
|
|
||||||
const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
|
|
||||||
(type *)( (char *)__mptr - offsetof(type,member) );})
|
|
||||||
|
|
||||||
struct weston_transform {
|
struct weston_transform {
|
||||||
struct weston_matrix matrix;
|
struct weston_matrix matrix;
|
||||||
struct wl_list link;
|
struct wl_list link;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct weston_drag {
|
struct weston_drag {
|
||||||
struct wl_client *client;
|
struct wl_client *client;
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "libinput-device.h"
|
#include "libinput-device.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
#define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)
|
#define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
#include "launcher-util.h"
|
#include "launcher-util.h"
|
||||||
#include "libinput-seat.h"
|
#include "libinput-seat.h"
|
||||||
#include "libinput-device.h"
|
#include "libinput-device.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
static const char default_seat[] = "seat0";
|
static const char default_seat[] = "seat0";
|
||||||
static const char default_seat_name[] = "default";
|
static const char default_seat_name[] = "default";
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "pixman-renderer.h"
|
#include "pixman-renderer.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "rpi-renderer.h"
|
#include "rpi-renderer.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
#ifdef ENABLE_EGL
|
#ifdef ENABLE_EGL
|
||||||
#include <EGL/egl.h>
|
#include <EGL/egl.h>
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
#include <wayland-client.h>
|
#include <wayland-client.h>
|
||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
#include "shared/os-compatibility.h"
|
#include "shared/os-compatibility.h"
|
||||||
#include "fullscreen-shell-client-protocol.h"
|
#include "fullscreen-shell-client-protocol.h"
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "screenshooter-server-protocol.h"
|
#include "screenshooter-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
#include "wcap/wcap-decode.h"
|
#include "wcap/wcap-decode.h"
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "text-server-protocol.h"
|
#include "text-server-protocol.h"
|
||||||
#include "input-method-server-protocol.h"
|
#include "input-method-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct text_input_manager;
|
struct text_input_manager;
|
||||||
struct input_method;
|
struct input_method;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "compositor.h"
|
#include "compositor.h"
|
||||||
#include "text-cursor-position-server-protocol.h"
|
#include "text-cursor-position-server-protocol.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
weston_zoom_frame_z(struct weston_animation *animation,
|
weston_zoom_frame_z(struct weston_animation *animation,
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include "weston-test-server-protocol.h"
|
#include "weston-test-server-protocol.h"
|
||||||
#include "ivi-test.h"
|
#include "ivi-test.h"
|
||||||
#include "ivi-shell/ivi-layout-export.h"
|
#include "ivi-shell/ivi-layout-export.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct test_context;
|
struct test_context;
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,8 @@
|
|||||||
#include "src/weston-egl-ext.h"
|
#include "src/weston-egl-ext.h"
|
||||||
#endif /* ENABLE_EGL */
|
#endif /* ENABLE_EGL */
|
||||||
|
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
struct weston_test {
|
struct weston_test {
|
||||||
struct weston_compositor *compositor;
|
struct weston_compositor *compositor;
|
||||||
struct weston_layer layer;
|
struct weston_layer layer;
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#include "xwayland.h"
|
#include "xwayland.h"
|
||||||
|
#include "shared/helpers.h"
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|||||||
Reference in New Issue
Block a user