diff options
Diffstat (limited to 'src/glibext')
-rw-r--r-- | src/glibext/gbinarycursor.c | 27 | ||||
-rw-r--r-- | src/glibext/glinecursor-int.h | 4 | ||||
-rw-r--r-- | src/glibext/glinecursor.c | 23 | ||||
-rw-r--r-- | src/glibext/glinecursor.h | 4 |
4 files changed, 58 insertions, 0 deletions
diff --git a/src/glibext/gbinarycursor.c b/src/glibext/gbinarycursor.c index 470022c..c614058 100644 --- a/src/glibext/gbinarycursor.c +++ b/src/glibext/gbinarycursor.c @@ -60,6 +60,9 @@ static void g_binary_cursor_finalize(GBinaryCursor *); /* Compare deux suivis d'emplacements. */ static int g_binary_cursor_compare(const GBinaryCursor *, const GBinaryCursor *); +/* Détermine si un suivi d'emplacement est valide ou non. */ +static bool g_binary_cursor_is_valid(const GBinaryCursor *); + /* Détermine le type du gestionnaire de largeurs associées aux lignes. */ @@ -91,6 +94,7 @@ static void g_binary_cursor_class_init(GBinaryCursorClass *class) line = G_LINE_CURSOR_CLASS(class); line->compare = (compare_cursor_fc)g_binary_cursor_compare; + line->is_valid = (is_cursor_valid_fc)g_binary_cursor_is_valid; } @@ -201,6 +205,29 @@ static int g_binary_cursor_compare(const GBinaryCursor *cursor, const GBinaryCur /****************************************************************************** * * +* Paramètres : cursor = suivi d'emplacement à consulter. * +* * +* Description : Détermine si un suivi d'emplacement est valide ou non. * +* * +* Retour : Bilan de validité. * +* * +* Remarques : - * +* * +******************************************************************************/ + +static bool g_binary_cursor_is_valid(const GBinaryCursor *cursor) +{ + bool result; /* Bilan à renvoyer */ + + result = !is_invalid_vmpa(&cursor->addr); + + return result; + +} + + +/****************************************************************************** +* * * Paramètres : cursor = suivi de positions à mettre à jour. * * addr = emplacement dans le binaire visé. * * * diff --git a/src/glibext/glinecursor-int.h b/src/glibext/glinecursor-int.h index 26e5143..2c56331 100644 --- a/src/glibext/glinecursor-int.h +++ b/src/glibext/glinecursor-int.h @@ -32,6 +32,9 @@ /* Compare deux suivis d'emplacements. */ typedef int (* compare_cursor_fc) (const GLineCursor *, const GLineCursor *); +/* Détermine si un suivi d'emplacement est valide ou non. */ +typedef bool (* is_cursor_valid_fc) (const GLineCursor *); + /* Suivi de positions dans un panneau de chargement (instance) */ struct _GLineCursor @@ -46,6 +49,7 @@ struct _GLineCursorClass GObjectClass parent; /* A laisser en premier */ compare_cursor_fc compare; /* Comparaison d'emplacements */ + is_cursor_valid_fc is_valid; /* Certificat de validité */ }; diff --git a/src/glibext/glinecursor.c b/src/glibext/glinecursor.c index 52cadea..b4f5811 100644 --- a/src/glibext/glinecursor.c +++ b/src/glibext/glinecursor.c @@ -153,3 +153,26 @@ int g_line_cursor_compare(const GLineCursor *cursor, const GLineCursor *other) return result; } + + +/****************************************************************************** +* * +* Paramètres : cursor = suivi d'emplacement à consulter. * +* * +* Description : Détermine si un suivi d'emplacement est valide ou non. * +* * +* Retour : Bilan de validité. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool g_line_cursor_is_valid(const GLineCursor *cursor) +{ + bool result; /* Bilan à renvoyer */ + + result = G_LINE_CURSOR_GET_CLASS(cursor)->is_valid(cursor); + + return result; + +} diff --git a/src/glibext/glinecursor.h b/src/glibext/glinecursor.h index 58bee9c..823adca 100644 --- a/src/glibext/glinecursor.h +++ b/src/glibext/glinecursor.h @@ -26,6 +26,7 @@ #include <glib-object.h> +#include <stdbool.h> @@ -50,6 +51,9 @@ GType g_line_cursor_get_type(void); /* Compare deux suivis d'emplacements. */ int g_line_cursor_compare(const GLineCursor *, const GLineCursor *); +/* Détermine si un suivi d'emplacement est valide ou non. */ +bool g_line_cursor_is_valid(const GLineCursor *); + #endif /* _GLIBEXT_LINECURSOR_H */ |