From 4089e006820e1029a2dd7093bae596b1b31d1686 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sun, 2 Jul 2017 15:16:23 +0200 Subject: simplified some driver manager code around calling virtual driver methods declared method tables const per class --- src/drivers/driver.c | 12 ++++-------- src/drivers/driver.h | 2 +- src/drivers/hdi/ps2/keyboard.c | 2 +- src/drivers/hdi/ps2/mouse.c | 2 +- src/drivers/video/vga.c | 2 +- src/gui/composite_widget.c | 2 +- src/gui/desktop.c | 2 +- src/gui/text_widget.c | 2 +- src/gui/widget.c | 2 +- src/gui/widget.h | 2 +- src/gui/window.c | 2 +- 11 files changed, 14 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/drivers/driver.c b/src/drivers/driver.c index 5a1a479..d0a2f5d 100644 --- a/src/drivers/driver.c +++ b/src/drivers/driver.c @@ -24,8 +24,7 @@ void driver_manager_activate_all( driver_manager_t *manager ) { for( int i = 0; i < manager->nof_drivers; i++ ) { driver_t *driver = (driver_t *)manager->driver[i]; - driver_vtable_t *driver_vtable = driver->vtable; - driver_vtable->activate( driver ); + driver->vtable->activate( driver ); } } @@ -37,8 +36,7 @@ void driver_manager_deactivate_all( driver_manager_t *manager ) for( int i = manager->nof_drivers - 1; i >= 0; i-- ) { driver_t *driver = (driver_t *)manager->driver[i]; - driver_vtable_t *driver_vtable = driver->vtable; - driver_vtable->deactivate( driver ); + driver->vtable->deactivate( driver ); } } @@ -50,8 +48,7 @@ void driver_manager_deinit( driver_manager_t *manager ) for( int i = manager->nof_drivers - 1; i >= 0; i-- ) { driver_t *driver = (driver_t *)manager->driver[i]; - driver_vtable_t *driver_vtable = driver->vtable; - driver_vtable->deinit( driver ); + driver->vtable->deinit( driver ); } } @@ -59,7 +56,6 @@ void driver_manager_print_info_all( driver_manager_t *manager ) { for( int i = 0; i < manager->nof_drivers; i++ ) { driver_t *driver = (driver_t *)manager->driver[i]; - driver_vtable_t *driver_vtable = driver->vtable; - driver_vtable->print_info( driver ); + driver->vtable->print_info( driver ); } } diff --git a/src/drivers/driver.h b/src/drivers/driver.h index c110308..c725871 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -11,7 +11,7 @@ typedef struct { } driver_vtable_t; typedef struct { - driver_vtable_t *vtable; + driver_vtable_t const *vtable; } driver_t; #define MAX_NOF_DRIVERS 256 diff --git a/src/drivers/hdi/ps2/keyboard.c b/src/drivers/hdi/ps2/keyboard.c index eddb1dc..740c9ec 100644 --- a/src/drivers/hdi/ps2/keyboard.c +++ b/src/drivers/hdi/ps2/keyboard.c @@ -64,7 +64,7 @@ static void read_ack( keyboard_t *keyboard ) } */ -static keyboard_vtable_t keyboard_vtable = { +static keyboard_vtable_t const keyboard_vtable = { { keyboard_activate, keyboard_deactivate, diff --git a/src/drivers/hdi/ps2/mouse.c b/src/drivers/hdi/ps2/mouse.c index 13fd37a..1421729 100644 --- a/src/drivers/hdi/ps2/mouse.c +++ b/src/drivers/hdi/ps2/mouse.c @@ -76,7 +76,7 @@ static void set_sample_rate( mouse_t *mouse, uint8_t samples ) read_ack( mouse ); } -static mouse_vtable_t mouse_vtable = { +static mouse_vtable_t const mouse_vtable = { { mouse_activate, mouse_deactivate, diff --git a/src/drivers/video/vga.c b/src/drivers/video/vga.c index fa974d5..b8e3120 100644 --- a/src/drivers/video/vga.c +++ b/src/drivers/video/vga.c @@ -8,7 +8,7 @@ #undef DEBUG -static vga_vtable_t vga_vtable = { +static vga_vtable_t const vga_vtable = { { vga_activate, vga_deactivate, diff --git a/src/gui/composite_widget.c b/src/gui/composite_widget.c index 4a7a607..743360f 100644 --- a/src/gui/composite_widget.c +++ b/src/gui/composite_widget.c @@ -3,7 +3,7 @@ #include "string.h" #include "stddef.h" -static composite_widget_vtable_t composite_widget_vtable = { +static composite_widget_vtable_t const composite_widget_vtable = { { composite_widget_draw, composite_widget_get_focus, diff --git a/src/gui/desktop.c b/src/gui/desktop.c index a27ac9a..98fb900 100644 --- a/src/gui/desktop.c +++ b/src/gui/desktop.c @@ -3,7 +3,7 @@ #include "string.h" #include "stddef.h" -static desktop_vtable_t desktop_vtable = { +static desktop_vtable_t const desktop_vtable = { { { desktop_draw, diff --git a/src/gui/text_widget.c b/src/gui/text_widget.c index 170066a..49c1be7 100644 --- a/src/gui/text_widget.c +++ b/src/gui/text_widget.c @@ -3,7 +3,7 @@ #include "string.h" #include "stddef.h" -static text_widget_vtable_t text_widget_vtable = { +static text_widget_vtable_t const text_widget_vtable = { { text_widget_draw, widget_get_focus, diff --git a/src/gui/widget.c b/src/gui/widget.c index 81ab264..3620761 100644 --- a/src/gui/widget.c +++ b/src/gui/widget.c @@ -3,7 +3,7 @@ #include "string.h" #include "stddef.h" -static widget_vtable_t widget_vtable = { +static widget_vtable_t const widget_vtable = { widget_draw, widget_get_focus, widget_model_to_screen, diff --git a/src/gui/widget.h b/src/gui/widget.h index ceb5b71..87b8c62 100644 --- a/src/gui/widget.h +++ b/src/gui/widget.h @@ -27,7 +27,7 @@ typedef struct widget_t { vga_color_t background_color; bool focusable; struct widget_t *parent; - widget_vtable_t *vtable; + widget_vtable_t const *vtable; } widget_t; void widget_init( widget_t *widget, widget_t *parent, const int x, const int y, const int w, const int h, const vga_color_t background_color ); diff --git a/src/gui/window.c b/src/gui/window.c index 3a75434..80c0b6c 100644 --- a/src/gui/window.c +++ b/src/gui/window.c @@ -3,7 +3,7 @@ #include "string.h" #include "stddef.h" -static window_vtable_t window_vtable = { +static window_vtable_t const window_vtable = { { { window_draw, -- cgit v1.2.3-54-g00ecf